Pythonは、AES暗号化と復号化ECBモードと他のモードを実現します

このモードは、ECBオフセットベクトル:( IVを必要としない、それ以下)のソースコードを忘れてしまった、セキュア

- * - - * - = UTF-8コーディング
から Crypto.Cipher 輸入AESの
 輸入OS
 から暗号輸入ランダムの
 輸入base64で
 から Crypto.Cipher 輸入AES
 から binascii インポート、b2a_hexをa2b_hex 

"" " 
AES加密算法
ECB模式
" "" 


DEF add_to_16(テキスト):
     場合(text.encode(LEN ' UTF-8 '))%16 
        アドオンは = 16 - lenは(text.encode(' UTF-8 '))16%
     
        アドオン = 0 
    、テキスト =テキスト+(" \ 0 " * 追加)
     リターン text.encode(' UTF-8 ' 


デフ暗号化(テキスト):
    キー = " 1234567890123456 " .encode(' UTF-8 ' 
    モード = AES .MODE_ECBの
    テキスト = add_to_16(テキスト)
    cryptos = AES.new(キー、モード)
    cipher_text = cryptos.encrypt(テキスト)
     リターンb2a_hex(cipher_text)


デフdecrypto(テキスト):
    キー = " 1234567890123456 " .encode(' UTF-8 ' 
    モード = AES.MODE_ECB 
    cryptor = AES.new(キー、モード)
    plain_text = cryptor.decrypt(a2b_hex(テキスト))
     戻り bytes.decode (plain_text).rstrip(' \ 0 ' 


テキスト =オープン(R ' XXXXXX '' R '、=コード' UTF-8 ' ).read()
 印刷(テキスト[:100 ])
D = decrypto(テキスト)
F =オープン(' xxxxxxxxx1 '' + W ' 
f.write(D)
f.close()

 

その他のモード:リファレンスBaiduは、テストされていません。

https://www.jianshu.com/p/d18c13681bbc

おすすめ

転載: www.cnblogs.com/donke/p/12129227.html