如何从NSData生成对称AES密钥?

时间:2017-03-02 14:16:37

标签: ios swift encryption aes

我需要从下面创建的NSData值生成对称AES密钥:

let decodedData = NSData(base64EncodedString: initKey, options: NSDataBase64DecodingOptions(rawValue: 0))

(initKey是base64字符串值。)

问题是如何从“decodingData”生成密钥? (类似于android SecretKeySpec)

(我正在使用swift 2.2)

这是场景(在android中):

1-我有一个base64字符串。

2- i将其解码为字节数组。

3-然后根据字节数组长度和AES类型创建一个密钥。

4-最后根据secretkey定义一个AES密码,对一些字符串进行编码。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

AES密钥仅为16或32字节的随机数据。他们没有结构。如果长度正确,则您已经有一个密钥。如果用SecretKeySpec表示“使用PBE”(基于密码的加密),那么它完全取决于将哪些参数传递给SecretKeySpec,以及如何使用CommonCrypto重新创建该参数。 AES加密没有通用的标准格式。您必须复制加密器正在执行的任何操作。因此,如果要匹配它,则需要确切说明正在执行的操作。

感谢@ rob-napier