【问题标题】:Does CommonCrypto reliably know when my key is invalid when I decrypt a ciphertext?当我解密密文时,CommonCrypto 是否可靠地知道我的密钥何时无效?
【发布时间】:2012-05-23 06:20:23
【问题描述】:

当我尝试使用错误的密钥解密密文时,CCCrypt 返回 kCCDecodeError。

问题是,它这样做是否可靠(例如,我是否保证如果它返回成功,我的输入密钥是用于加密纯文本的密钥,我是否也保证我的输出数据是我的原始纯文本) 它怎么知道我的密钥是否正确?

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

【问题讨论】:

    标签: ios macos commoncrypto


    【解决方案1】:

    如果您指定了 PCKS7 填充 (kCCOptionPKCS7Padding),那么它可以判断您是否未能正确解密 - 大多数情况下。错误密钥的随机结果有可能导致消息的最后几位看起来像有效的 PKCS7 填充。

    它唯一可以检测到的另一件事是您的密钥是否根本不是有效长度。

    【讨论】:

    • 那我怎么知道我的解密是成功还是失败?
    • @KyleJurick 我建议您的纯文本数据采用某种可以验证的格式。例如,像 XML。更笼统地说,如果你从中得到的数据没有用,我想你可以说它没有用。
    猜你喜欢
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2017-08-31
    • 1970-01-01
    • 2012-07-18
    相关资源
    最近更新 更多