我正在尝试编写一种库方法来解密数据, decryptData 方法由键,IV,encryptedData和decryptedData 提供:
decryptData(未签名的char *密钥,未签名的char * iv,未签名的char *加密的数据,未签名的char *解密的数据)
在上述方法中,openSSL调用顺序如下:
上述方法一切正常,我正在寻找错误的密钥错误情况,我如何知道用户提供了错误的密钥来解密数据,如果以上openSSL调用失败。这些调用仅返回SUCCESS(1)或Failed(0)。
我需要在加密过程中通知用户“密钥”错误或密钥不同。
任何帮助或指针将不胜感激。谢谢
答案 0 :(得分:1)
如果“坏密钥”是指与用于加密数据的密钥不同的密钥,则您可能不会知道它是不同的。解密是一种数学运算,只要使用有效格式,它就可以使用您提供的任何密钥-毕竟,密钥只是一组数字。但是,如果解密密钥与用于加密数据的密钥不同,则明文将不同或称为垃圾。如果要让用户验证明文的安全性,则除了加密外还需要一些东西,例如提供明文校验和。