python非対称暗号化およびデータベースの保存


python非対称暗号化およびデータベースの保存
python標準パッケージrsa
  • 対応する鍵および公開鍵を生成する:
  • pubkey, privkey = rsa.newkeys(1024)
    
  • は、公開鍵、鍵
  • を保持する.
    #   
    with open('public.pem', 'w+') as f:
        f.write(pubkey.save_pkcs1().decode())
    #   
    with open('privkey.pem', 'w+') as f:
        f.write(privkey.save_pkcs1().decode())
    
  • 暗号化データ
  • #     
    with open('pubkey.pem', 'r') as f:
        pubkey = rsa.Publickey.load_pkcs1(f.read().encode())
    
  • 保存データ  このときbase 64を選択して符号化変換して保存し、復号時にbase 64復号すればよい.
  • import base64
    crypto = rsa.encrypt(data, pubkey)
    crypto = base64.encodestring(crypto)
    
    #        
    
  • 復号データ  暗号化データを取り出すにはbase 64で復号するだけで正常復号
  • を行うことができる.
    #     
    crypto = base64.decodestring(crypto.encode('utf-8'))
    data = rsa.decrypt(crypto, privkey).decode()