Python TripleDES解密
Python TripleDES decryption
我正在尝试解密 python 中使用 3DES 加密的字符串。它是由我的正式伙伴 VB.net 加密的。我不知道发生了什么。 VB.net中的部分代码为
Private key() As Byte = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24}
Private iv() As Byte = {65, 110, 68, 26, 69, 178, 200, 219}
Private objTripleDES As New clsTripleDES(key, iv)
代码类似于https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1564&lngWId=10
是否可以在python中解密?我需要使用 bytearray 吗?
这样的事情怎么样:
from Crypto.Cipher import DES3
key = [
1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24
]
iv = [65, 110, 68, 26, 69, 178, 200, 219]
keyStr = ""
ivStr = ""
for i in key:
keyStr += chr(i)
for i in iv:
ivStr += chr(i)
encr = DES3.new(keyStr, DES3.MODE_CBC, ivStr)
decr = DES3.new(keyStr, DES3.MODE_CBC, ivStr)
#Outputs "1234567891234567"
print decr.decrypt(encr.encrypt("1234567891234567"))
您应该调查 VB 代码中使用的加密模式。根据 this,CBC 是默认模式,但您不能确定。
当您弄清楚使用的是什么模式时,请参阅 this。
我正在尝试解密 python 中使用 3DES 加密的字符串。它是由我的正式伙伴 VB.net 加密的。我不知道发生了什么。 VB.net中的部分代码为
Private key() As Byte = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24}
Private iv() As Byte = {65, 110, 68, 26, 69, 178, 200, 219}
Private objTripleDES As New clsTripleDES(key, iv)
代码类似于https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1564&lngWId=10
是否可以在python中解密?我需要使用 bytearray 吗?
这样的事情怎么样:
from Crypto.Cipher import DES3
key = [
1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24
]
iv = [65, 110, 68, 26, 69, 178, 200, 219]
keyStr = ""
ivStr = ""
for i in key:
keyStr += chr(i)
for i in iv:
ivStr += chr(i)
encr = DES3.new(keyStr, DES3.MODE_CBC, ivStr)
decr = DES3.new(keyStr, DES3.MODE_CBC, ivStr)
#Outputs "1234567891234567"
print decr.decrypt(encr.encrypt("1234567891234567"))
您应该调查 VB 代码中使用的加密模式。根据 this,CBC 是默认模式,但您不能确定。 当您弄清楚使用的是什么模式时,请参阅 this。