PythonのAES対称暗号化

1、あなたは最初に、サードパーティのライブラリをインストールする必要があります

  pycryptodomeをインストールするPIP

2、サンプルコードは、利用可能なプロ試験

#1 コーディング:UTF 8-。

インポートのBase64
 から Crypto.Cipher インポートAESの


クラスUSE_AES:
     "" " 
    AESの
    付加MODE_SIVモードキーの長さ:32、48、または64、
    キー16、24又は32の残りの長さは
    、文書内の詳細には、AES参照
    CBCをモードIVパラメータが渡された
    コモンECBモードを使用して、本実施形態に係る
    " "" 

    DEF  __init__ :(セルフ、KEY)
         IF > 32 lenは(キー)
            キー =キー[32 ] 
        self.key = self.to_16(キー)

    DEF to_16 (自己、キー):
         「」 " 
        データの16バイトの倍数に切り替え
        :paramキーの:
        :リターン
        ""」の戻り
        キー =バイト(キー、エンコーディングは= " UTF8 " しながら、 LEN(キー)%16 =!0:
            キー + = B ' \ 0 ' 
            のプリント" to_16は" を返すキー   返回バイト

    デフAES(自己):
         リターン AES .new(self.key、AES.MODE_ECB) 初始化加密器

    DEF 暗号化(自己、テキスト):
        AES = self.aes()
        STR(base64.encodebytes(aes.encrypt(self.to_16(テキスト)))、
                   符号化 =' UTF8 ').replace(' の\ n ''' )   加密

    DEF decodebytes(自己、テキスト):
        AES = self.aes()
         戻りSTR(aes.decrypt(base64.decodebytes(バイト(
            テキスト、エンコーディング = ' UTF-8 ')))rstrip(B。' \ 0 ').decode(" UTF-8 "))  解密


場合 __name__ ==' __main__ ' aes_test = USE_AES( "e9abe30a15422ae73bc39aa89ccd75d52f72c3ff") 
    aes_test = USE_AES(" e9fc52c72346ecc9 " 
    暗号 = aes_test.encrypt(" { "データ":{ "タイプ": "HTML"、 "モバイル": "17100000002"} } ' 
    デコード = aes_test.decodebytes(' TVaxmOv920UbPyV7NVDbv5ApDPzaL3P4w3MC8b2XvxqHUCwAi58m0D2IR + f7wrmH ' プリント(暗号化)
     プリント(デコード)

 

おすすめ

転載: www.cnblogs.com/yaoqingzhuan/p/11121141.html