ios - 是否可以在 iOS 上将 AES128 与 GCM 模式一起使用?

标签 ios encryption cryptography aes aes-gcm

所以我想问各位 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/

相关文章:

c# - 如何在 C# .Net 4.6 WPF 应用程序中隐藏 ConnectionString

ios - 核心文本 : Simplest accurate means of getting text bounds?

ios - 如何使用 JASON pod 解析枚举?

c# - 使用 C# 安全地连接到 AWS MySQL 数据库

java - 基于用户输入 key 的加密

sql - 哪里使用SQL的列级加密?

node.js - 如何在 Node.js 中重现 Bash HMAC 加密

c# - 不使用 KeyVault 的 Azure 表存储客户端加密

ios - 应用程序传输安全已阻止明文 HTTP (http ://) resource load since it is insecure

ios - 在 iOS 6 中调整大小后 MKMapView 变为空白