encryption - AES 中的 key 验证

标签 encryption aes

如果用户输入了错误的 AES 解密 key ,就会产生一些垃圾数据。我想验证给定的解密 key 并在 key 不正确时抛出错误。如何验证用户输入的 key ?

最佳答案

使用 HMAC .基本前提是您通过 HMAC 运行明文,将结果添加到明文然后加密。然后在解密时做相反的事情。如果明文和 HMAC 结果匹配,那么您就知道您获得了正确的 key 。

或者,如果您想在解密之前知道,请使用用户提供的 key Material 推导出另外两个 key (使用 PBKDF2)。一个用于加密,另一个用于 HMAC。在这种情况下,首先加密和 然后 使用第二个 key 应用 HMAC。这样你就可以计算 HMAC 并检查它是否匹配 之前 你解密。

关于encryption - AES 中的 key 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50507211/

相关文章:

encryption - 使用 crypto/aes lib 的 Golang 文件加密

Android SqlCipher 性能问题

c# - "Padding is invalid and cannot be removed"使用Aes解密密文时出错

JAVA:字符串问题的 128 位 key 和返回

Cocoa AES 加密 NSData 和 Bytearrays

java - 如何允许使用错误 key 完成解密而不抛出 BadPaddingException?

java - 尝试使用java RSA PKCS1中给定的公钥/私钥进行加密解密

java - 使用 AES/CTR 模拟流密码

java - 将 AES 加密从 Java 移植到 Objective-C

SQL Server 2008 物理服务器切换时打开主 key 错误