如何在python中使用DES算法使用8字节十六进制密钥加密和解密十六进制文本?
我有一个十六进制文本0x3a3456abcd4ff5cd
用十六进制密钥加密,所以如何将这些值转换为等效的字符串,以便我可以使用现有的库来处理它们。
这是我尝试过的内容,但它代表相当于13字节字符串的8字节密钥:
from Crypto.Cipher import DES
text =(unichr(4).decode('utf-8')*8).encode('utf-8')
key1=(unichr(0x46)+unichr(0xb2)+unichr(0xc8)+unichr(0xb6)+unichr(0x28)+unichr(0x18)+unichr(0xf8)+unichr(0x84)).encode('utf-8')
key2=(unichr(0x4a)+unichr(0x5a)+unichr(0xa8)+unichr(0xd0)+unichr(0xba)+unichr(0x30)+unichr(0x58)+unichr(0x5a)).encode('utf-8')
des = DES.new(key1,DES.MODE_ECB)
cipher_text = des.encrypt(plain_text)
print 'the cipher text is ', cipher_text
des = DES.new(key2,DES.MODE_ECB)
print 'the decrypted text is: ', des.decrypt(cipher_text)
答案 0 :(得分:0)
要使用示例中的两个键,请按以下方式分配:
key1 = '\x46\xb2\xc8\xb6\x28\x18\xf8\x84'
key2 = '\x4a\x5a\xa8\xd0\xba\x30\x58\x5a'
这将使每个键保持8个字节,允许您在DES.new
中使用它们。