Joe*_*nos 3 .net cryptography rijndael rijndaelmanaged
我已经阅读了一些关于这个主题的内容,但我仍然不能完全理解我看到的答案.
当你使用创建加密算法时Rijndael.Create()
,你会得到一个类型的对象RijndaelManaged
- 这和调用之间似乎没有区别new RijndaelManaged()
(或者New RijndaelManaged()
对你来说是VB人).:)
根据我的阅读,该Rijndael.Create()
方法存在,以便您在将来的版本中更改时不需要担心具体的实现.但我的问题是:假设确实发生了这种情况,.NET 5.0会返回不同的实现.是否可以保证使用RijndaelManaged加密的项目可以解密而不会出现问题SomeFutureRijndaelManaged
?
我无法想象他们会不相容,但我只是想证实这一点.
谢谢
Rijndael.Create
添加一层抽象和额外的重定向,以便它可以提供系统特定的算法版本.实际上它非常慢,需要通过Crypto API来解析OID字符串映射,最终到达RijndaelManaged
该类.我们发现,不是跨平台提供稳定性,而是在Windows 2000/XP/Vista/Windows上引发问题.而且,通过Create方法创建对象实例要比直接实例化RijndaelManaged类慢几百倍.我们发现这在加密/解密内存中的数据时是一个主要瓶颈.
至于"未来验证" - 安全算法没有这样的东西.当.NET 5.0问世时.无论您创建算法的方法如何,您都必须进行更新以适应他们所做的任何更改.您可以<supportedRuntime />
在应用程序的.config文件中使用以锁定.NET版本,这样您只有在测试和更新后才允许应用程序切换.
归档时间: |
|
查看次数: |
1092 次 |
最近记录: |