3

我在 Mac OS 10.7 上使用 CommonCrypto 进行加密。这个框架不是内置的吗?当我生成随机数据时:

+ (NSData *)randomDataOfLength:(size_t)length {
NSMutableData *data = [NSMutableData dataWithLength:length];

int result = SecRandomCopyBytes(kSecRandomDefault, 
                                length,
                                data.mutableBytes);
NSAssert(result == 0, @"Unable to generate random bytes: %d",
         errno);

return data;

}

我得到错误使用未声明的标识符 kSecRandomDefault,我相信它是在 CommonCrypto 中声明的。

谢谢,非常感谢所有帮助。

4

1 回答 1

11

它定义在SecRandom.h. 确保您已Security在项目中包含该框架并添加适当的头文件。它不包含在框架默认标头中(我不确定这是过度站点还是故意的)。因此,将以下导入添加到您的实现文件中:

#import <Security/SecRandom.h>
于 2011-12-26T21:22:29.227 回答