尝试执行openssl解密时如何找出密钥是否错误或不相同

时间:2019-04-09 14:44:08

标签: openssl

我正在尝试编写一种库方法来解密数据, decryptData 方法由键,IV,encryptedData和decryptedData 提供:

decryptData(未签名的char *密钥,未签名的char * iv,未签名的char *加密的数据,未签名的char *解密的数据)

在上述方法中,openSSL调用顺序如下:

  1. EVP_CIPHER_CTX_new
  2. EVP_DecryptInit_ex
  3. EVP_DecryptUpdate
  4. EVP_DecryptFinal_ex

上述方法一切正常,我正在寻找错误的密钥错误情况,我如何知道用户提供了错误的密钥来解密数据,如果以上openSSL调用失败。这些调用仅返回SUCCESS(1)或Failed(0)。

我需要在加密过程中通知用户“密钥”错误或密钥不同。

任何帮助或指针将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

如果“坏密钥”是指与用于加密数据的密钥不同的密钥,则您可能不会知道它是不同的。解密是一种数学运算,只要使用有效格式,它就可以使用您提供的任何密钥-毕竟,密钥只是一组数字。但是,如果解密密钥与用于加密数据的密钥不同,则明文将不同或称为垃圾。如果要让用户验证明文的安全性,则除了加密外还需要一些东西,例如提供明文校验和。