gpt4 book ai didi

objective-c - PBKDF2 在 iOS 上使用 CommonCrypto

转载 作者:技术小花猫 更新时间:2023-10-29 10:13:17 25 4
gpt4 key购买 nike

我正在尝试使用 CommonCrypto 通过 PBKDF2 生成 key ,但我似乎无法导入 CommonCrypto/CommonKeyDerivation.h,我只是错误提示找不到它。

有什么想法吗?

编辑:我应该提一下我已经添加了安全框架并且我可以导入所有其他 CommonCrypto header 。

最佳答案

以下是我如何生成 AES256 key 。唯一有趣的是,我让 CommonCrypto 为我估计要使用多少轮。这看起来非常简单。

#import <CommonCrypto/CommonKeyDerivation.h>

...

// Makes a random 256-bit salt
- (NSData*)generateSalt256 {
unsigned char salt[32];
for (int i=0; i<32; i++) {
salt[i] = (unsigned char)arc4random();
}
return [NSData dataWithBytes:salt length:32];
}

...

// Make keys!
NSString* myPass = @"MyPassword1234";
NSData* myPassData = [myPass dataUsingEncoding:NSUTF8StringEncoding];
NSData* salt = [self generateSalt256];

// How many rounds to use so that it takes 0.1s ?
int rounds = CCCalibratePBKDF(kCCPBKDF2, myPassData.length, salt.length, kCCPRFHmacAlgSHA256, 32, 100);

// Open CommonKeyDerivation.h for help
unsigned char key[32];
CCKeyDerivationPBKDF(kCCPBKDF2, myPassData.bytes, myPassData.length, salt.bytes, salt.length, kCCPRFHmacAlgSHA256, rounds, key, 32);

关于objective-c - PBKDF2 在 iOS 上使用 CommonCrypto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com