gpt4 book ai didi

ios - iOS环境下的GNUPG解密

转载 作者:行者123 更新时间:2023-12-01 18:27:39 25 4
gpt4 key购买 nike

一位同事向我提供了他使用 GNUPG 加密的两个文本文件,AES128/AES256 没有加盐。

使用以下示例,https://stackoverflow.com/a/1400596/300972 ,我尝试在 iOS 应用程序中解密这两个文件,一个使用 AES256 示例,第二个通过将算法修改为 kCCAlgorithmAES128 并将 key 大小修改为 kCCKeySizeAES128。

将文件加载到 NSData 对象证明是成功的;我能够输出 NSData。但是,在解密时,它们总是以 kCCDecodeError (-4304) 失败。我认为可能是填充,所以我们尝试了不同的变体,原来是 kCCOptionPKCS7Padding,仍然是同样的错误。我尝试了填充 0,它提供了一个截断的 NSData 对象,我无法从中创建 NSString。 (UTF8 编码)。

有没有人能够在 iOS 环境中成功解密使用 GNUPG 加密的文件?你能给我们提供经验教训吗?

最佳答案

GnuPG 以 OpenPGP 文件格式 ( RFC-4880 ) 写入。这是一种相当复杂的格式,您甚至需要在开始解密数据之前对其进行解析。 GnuPG 还会在加密数据之前对其进行压缩。它使用“OpenPGP 的密码反馈 (CFB) 模式变体”。虽然 iOS 5 支持 CFB,但这与 RFC-4880 不太一样。例如,它们不使用普通的 IV,而是以一种新颖的方式进行同步,以提供与标准 CFB 不兼容的“快速检查”。然后是他们的 String-to-Key (S2K) 算法,与 PBKDF2 不同。
简而言之,CommonCryptor 是将其分解为交给 AES 的一系列步骤中的最后一个。你可以看看 libgcrypt,但它的 LGPL 许可证通常与 iOS 开发不兼容。您可能应该调查其他 OpenPGP 实现。我知道 JavaScript 中有一些(这很疯狂,但仍然可以工作而不会造成许可问题)。也许 Cryptlib (具有商业许可证)。
就个人而言,如果可以的话,我会选择其他一些加密器。 OpenSSL 虽然不是特别安全,但非常便携,并且像命令行应用程序一样易于使用。 RNCryptor可以在 iOS 上读写。

关于ios - iOS环境下的GNUPG解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11958913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com