AES加密:从Python(pyCrypto)到.NET

2 投票
1 回答
1213 浏览
提问于 2025-04-15 23:33

我现在正在尝试把一个老旧的Python应用程序移植到.NET上,这个应用程序使用了AES加密,似乎是用pyCrypto这个库。我对Python和加密的了解非常有限。代码中使用了以下页面的代码片段。http://www.djangosnippets.org/snippets/1095/

到目前为止,我认为我已经搞明白了,它调用了Crypto.Cipher中的AES,并使用我们秘密钥匙的前32个字符作为密码,但没有指定模式或初始化向量(IV)。在将加密文本添加到数据库时,它还会在前面加一个前缀。

我现在搞不清楚的是,如何在.NET中解密现有的加密数据库记录。我查看了RijndaelManaged这个类,但它需要一个初始化向量,而在Python中没有看到任何关于这一点的引用。

有没有人能告诉我在.NET中可以使用什么方法来达到想要的效果?

1 个回答

1

AES(高级加密标准)和Rijndael加密算法需要一个模式和一个初始化向量(IV)。初始化向量可以是全零的,但它仍然是一个IV。虽然模式可能没有明确指定……但如果使用的是AES,肯定还是有一个模式。

想了解更多背景知识,可以看看这个回答:
在Ruby/Python中使用哪个AES库?

撰写回答