2011-10-21 25 views
3

当我尝试使用错误的密钥解密密文时,CCCrypt返回kCCDecodeError。当我解密一个密文时,CommonCrypto能够可靠地知道我的密钥何时无效?

问题是,它是否可靠地(例如,我保证,如果它返回成功,我的输入密钥是用于加密纯文本的关键,我也保证我的输出数据是我原来的纯文字),它怎么能知道我的钥匙是否正确?

据我了解密码,引擎无法预测密钥是否有效,应该给我随机噪声作为输出数据和成功的返回代码。

回答

1

如果您指定了PCKS7填充(kCCOptionPKCS7Padding),那么它可以告诉您是否无法正确解密 - 大部分时间。有可能错误密钥的随机结果可能导致消息的最后几位看起来像有效的PKCS7填充。

它可以检测到的唯一的其他事情是如果你的钥匙根本不是一个有效的长度。

+0

那么我该如何知道我的解密是成功还是失败? –

+0

@KyleJurick我会建议您的明文数据采用某种可以验证的格式。例如,像XML一样。更一般地说,我想你可以告诉它没有用,如果你得到的数据没有用。 –

相关问题