有没有办法使用用户定义的密钥进行AES解密使用WinCrypt API?根据我的理解阅读文档和示例,标准的方法是使用Windows加密API生成随机密钥,将此密钥导出到文件并使用它进行解密。
但我需要允许用户定义自己的加密/解密密码。
答案 0 :(得分:1)
.NET库在System.Security.Cryptography命名空间中提供了PasswordDeriveBytes,正是出于此目的。看起来CryptDeriveKey是WinCrypt API的等价物。是的,你可以让你的用户选择自己的密码,然后让这个函数咀嚼很多微秒,计算加密函数的实际关键字节数。你的最终用户永远不会错过那几微秒,但是一个蛮力黑客放慢每秒尝试100万个密码而不是10亿密码就会讨厌它,这就是应该的。