所以我想问各位 stackoverflow 天才的问题是:如果有一种方法( native 、库、框架等)使用 AES 加密数据(最好是 128,但也可以是 256)使用strong 经过身份验证的加密算法,比方说GCM模式?
问题很短,我做了一些研究,我只找到了一个似乎支持它的库(RNCryptor),但它似乎也使用密码而不是 key 来加密(就像你提供密码,图书馆制作 key )我不太喜欢这样,我更喜欢自己管理我的 key 。
我也看 CommonCryptor.h 并且我找到了那一行,在我看来这是 commoncryptor 源代码中 GCM 的唯一引用(但我可能是错的,实际上我可能是错的):
case kCCModeGCM: if((ref->symMode[direction].gcm = getCipherMode(cipher, mode, direction).gcm) == NULL) return kCCUnimplemented;
提前致谢!
最佳答案
RNCryptor 使用 HMAC,它被认为是一种创建身份验证标签的加密方法。它也是开源的。所以我会认真考虑为此克隆 RNCryptor 代码(保持 header 中的版权完整!)。
基于密码的加密包括派生 key (可能还有 IV),然后执行加密和身份验证。因此,您应该通过简单地删除 key 派生部分来取得很大进展。
唯一不起作用的情况是 key 派生代码被编织到执行加密/身份验证的部分中,但 RNCryptor 似乎不是这种情况。
关于ios - 是否可以在 iOS 上将 AES128 与 GCM 模式一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23681571/