.NET CORE

时间:2017-01-09 00:54:33

标签: c# algorithm encryption aes .net-core

我在.NET Core 1.1中开发服务。它连接到遗留数据库,该数据库存储使用AES Rjindael加密的数据。解密算法使用System.Security.Cryptography.PasswordDeriveBytes()方法创建IV。

看起来这个函数没有移植到.NET Core,因为它已经过时了。不幸的是,我没有选择替换旧数据和代码以使用更好的算法。不知何故,我需要获得此算法的实现,以使其向后兼容。

有关如何实施这些算法的任何建议?谢谢!

更新

接受Maarten Bodewes复制单声道源代码的答案,尽管我不可能实施。问题是你必须移植一大块单声道加密才能使其正常工作。 (我找到了避免使用PasswordDeriveBytes的方法)。谢谢Maarten!

2 个答案:

答案 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});

但是当您的数据已经被过时的功能加密并且您需要解密它们时,这对您没有帮助。