pycrypto RC2 encrypt()没有得到正确的密码

时间:2015-10-28 03:56:51

标签: python pycrypto

我编写了一个简单的函数来在Python中使用RC2加密消息。使用的包是pycrypto;但是结果不正确,代码如下所示

def encrypt_rc2(plain, key):
    b_size = ARC2.block_size

    # PKCS7 padding
    padding_length = b_size - len(plain) % b_size
    c_fill = chr(padding_length)

    plain += c_fill * padding_length
    iv = '\x00' * 8
    alg = ARC2.new(key, ARC2.MODE_CBC, iv)
    return alg.encrypt(plain)

使用的模式是CBC,IV设置为全零,使用的填充是PKCS7

在我的测试中,输入普通是 51349910000011 ,使用的密钥是 \ x81 \ xda \ x6c \ x63 \ xf2

输出(密码)如下所示(打印整数序数)

[96, 106, 49, 42, 52, 195, 126, 196, 158, 199, 213, 105, 66, 217, 81, 69]

预期的密码应该是(使用C#System.Security.Cryptography)

[195, 73, 163, 32, 206, 3, 56, 179, 140, 106, 47, 173, 99, 192, 180, 15]

有人知道代码有什么问题吗?

0 个答案:

没有答案