我想用CommonCrypto解密DES加密的字符串,因此我必须从给定的密码短语中生成一个密钥。
我在Apple的API参考中找到了以下功能:SecKeyGenerateSymmetric
但是当我在swift文件中导入Security时,如果框架的其他功能可用(例如SecKeyGeneratePair),则此功能不可用。
此功能是否被其他功能取代?
或者还有其他方法可以在Swift 3中生成DES密钥吗?
答案 0 :(得分:1)
为了使用Common Crypto和Swift,需要添加一个桥接头:
class Person
{
public:
// ...
virtual void write(std::ostream& os);
};
std::ostream& operator<<(std::ostream& os, const Person& p)
{
p.write(os);
return os;
}
class Worker : public Person
{
public:
// ...
void write(std::ostream& os) override;
};
将#import <CommonCrypto/CommonCrypto.h>
添加到项目中。
注意:
从密码生成密钥(密钥派生)时,需要使用相同的方法和参数。有几种常用的方法,PBKDF2是NIST经常使用和建议的方法。您知道用于密钥派生的方法和参数吗?