Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用十六进制密钥python对十六进制进行DES加密和解密_Python_Hex_Des_Pycrypto - Fatal编程技术网

使用十六进制密钥python对十六进制进行DES加密和解密

使用十六进制密钥python对十六进制进行DES加密和解密,python,hex,des,pycrypto,Python,Hex,Des,Pycrypto,如何在python中使用DES算法使用8字节十六进制密钥加密和解密十六进制文本 我有一个十六进制文本0x3a3456abcd4ff5cd要用十六进制密钥加密,因此如何将这些值转换为等效字符串,以便使用现有库来处理它们 这是我尝试过的,但它表示8字节的密钥相当于13字节的字符串: from Crypto.Cipher import DES text =(unichr(4).decode('utf-8')*8).encode('utf-8') key1=(unichr(0x46)+unichr(0

如何在python中使用DES算法使用8字节十六进制密钥加密和解密十六进制文本

我有一个十六进制文本
0x3a3456abcd4ff5cd
要用十六进制密钥加密,因此如何将这些值转换为等效字符串,以便使用现有库来处理它们

这是我尝试过的,但它表示8字节的密钥相当于13字节的字符串:

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)

要使用示例中的两个键,请按如下方式分配它们:

key1 = '\x46\xb2\xc8\xb6\x28\x18\xf8\x84'

key2 = '\x4a\x5a\xa8\xd0\xba\x30\x58\x5a'

这将使每个键保持8个字节,允许您在DES中使用它们。新的

您所说的“等效字符串”是什么意思?@RobWatts它类似于0x97,与“a”等效。您使用的是您自己选择的键,还是来自其他地方的键?我正在尝试实现8字节十六进制键集,我在一篇导致DES冲突的文章中发现