我在.NET Core 1.1中开发服务。它连接到遗留数据库,该数据库存储使用AES Rjindael加密的数据。解密算法使用System.Security.Cryptography.PasswordDeriveBytes()方法创建IV。
看起来这个函数没有移植到.NET Core,因为它已经过时了。不幸的是,我没有选择替换旧数据和代码以使用更好的算法。不知何故,我需要获得此算法的实现,以使其向后兼容。
有关如何实施这些算法的任何建议?谢谢!
更新
接受Maarten Bodewes复制单声道源代码的答案,尽管我不可能实施。问题是你必须移植一大块单声道加密才能使其正常工作。 (我找到了避免使用PasswordDeriveBytes的方法)。谢谢Maarten!
答案 0 :(得分:4)
只需从Mono中获取代码,只要您不需要PBKDF1中的更多字节作为哈希函数的输出,它就应该是OK 。
不要忘记阅读开源许可。
答案 1 :(得分:0)
PasswordDeriveBytes已过时,请改用Rfc2898DeriveBytes
var pdb = new Rfc2898DeriveBytes(Password,
new byte[] {0x49, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55,
0x56, 0x57, 0x58, 0x59, 0x60, 0x61});
但是当您的数据已经被过时的功能加密并且您需要解密它们时,这对您没有帮助。