PythonはDES CBCモードの暗号化を実現します

 

 

- * -コーディング= UTF-8 - * - 
から Crypto.Cipher インポートDESの
 輸入BASE64
 "" " 
デCBC加密算法
パディング:PKCS5 
""" 
クラスDESUtil:
     __BLOCK_SIZE_8 = BLOCK_SIZE_8 = DES.block_size
     __IV = " \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 "  __IV = CHR(0)* 8 
    @staticmethod
     デフencryt(STR、キー):
        暗号 = DES.new(。キー、DES.MODE_CBC、DESUtil __IV 
        のx = DESUtil。__BLOCK_SIZE_8 - (LEN(STR)%DESUtil。__BLOCK_SIZE_8菌糸のx =!0:
            STR = STR + CHR(X)* X 
        MSG = cipher.encrypt(STR)
        MSG = base64.urlsafe_b64encode(MSG).replace( '='、 '') 
        MSG = base64.b64encode( MSG)
         戻りMSGは
    @staticmethod 
    DEF ()、キーINSTR:解読
        暗号。= DES.new(キーDES.MODE_CBC、DESUtilを__IV INSTR + =(亜麻仁(INSTR)%4)* "=" 
        decryptByts = BASE64 .urlsafe_b64decode(INSTR) 
        decryptByts = base64.b64decode(INSTR)
        MSG =cipher.decrypt(decryptByts)
        paddingLen = ORD(MSG [LEN(MSG)-1 ])
         戻り MSG [0: - paddingLen]
 なら __name__ == " __main__ " 
    キー = " 12345678 " 
    RES = DESUtil.encryt(" 123456 " 、キー)
     プリント resはED5wLgc3Mnw = 
    印刷 DESUtil.decrypt(RESキー)

 

おすすめ

転載: www.cnblogs.com/xuchunlin/p/11421801.html