【问题标题】:Python TripleDES decryptionPython TripleDES解密
【发布时间】:2016-08-10 09:14:30
【问题描述】:

我正在尝试解密使用 3DES 加密的 python 中的字符串。它是由我的正式伙伴通过 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 中解密?我需要使用字节数组吗?

【问题讨论】:

标签: python vb.net bytearray tripledes


【解决方案1】:

这样的事情怎么样:

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 代码中用于加密的模式。 CBC是默认模式,根据this,但你不能确定。 当你弄清楚使用了什么模式时,请参阅this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2021-01-09
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    相关资源
    最近更新 更多