我需要从下面创建的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密码,对一些字符串进行编码。
感谢您的帮助
答案 0 :(得分:0)
AES密钥仅为16或32字节的随机数据。他们没有结构。如果长度正确,则您已经有一个密钥。如果用SecretKeySpec表示“使用PBE”(基于密码的加密),那么它完全取决于将哪些参数传递给SecretKeySpec,以及如何使用CommonCrypto重新创建该参数。 AES加密没有通用的标准格式。您必须复制加密器正在执行的任何操作。因此,如果要匹配它,则需要确切说明正在执行的操作。
感谢@ rob-napier