安全服务API似乎不允许我直接计算散列.有很多公共领域和自由许可的版本可用,但如果可能的话,我宁愿使用系统库实现.

可以通过NSData或普通指针访问数据.

哈希的加密强度对我很重要.SHA-256是可接受的最小哈希大小.

推荐答案

这是我在SHA1中使用的:

#import <CommonCrypto/CommonDigest.h>

+ (NSData *)sha1:(NSData *)data {
    unsigned char hash[CC_SHA1_DIGEST_LENGTH];
    if ( CC_SHA1([data bytes], [data length], hash) ) {
        NSData *sha1 = [NSData dataWithBytes:hash length:CC_SHA1_DIGEST_LENGTH];        
        return sha1;
    }
return nil;
}

CC_SHA1替换为CC_SHA256(或任何你需要的),将CC_SHA1_DIGEST_LENGTH替换为CC_SHA256_DIGEST_LENGTH.

Objective-c相关问答推荐

在 MacOS 上截屏

UIImageView 并不总是为模板图像着色

CFURLCopyResourcePropertyForKey 失败,因为通过 URL 没有方案

ios10:viewDidLoad 框架宽度/高度未正确初始化

为什么当我使其处于非活动状态时,弱 IBOutlet NSLayoutConstraint 变为 nil?

导致此问题的原因:无法从 switch 语句跳转到此 case 标签

未调用 cellForItemAtIndexPath 但 numberOfItemsInSection 调用

Objective-C 中是否存在强类型集合?

iOS:警告“try 呈现其视图不在窗口层次结构中的 ViewController”

Xcode 在 iOS 8 中的 Main() 中引发异常,并带有“所有异常”断点

正确使用intrinsicContentSize和sizeThatFits:在带有自动布局的UIView子类上

如何将 NSOperationQueue 与 NSURLSession 一起使用?

Facebook 添加测试用户和管理员是:(待定),这是什么意思?

如何获得本地化的 Cancel、Done 等?

在 Xcode 5 中运行代码覆盖时出现数十个“profiling:invalid arc tag”

UITextField secureTextEntry 带有自定义字体的项目符号?

如何创建 .dSYM 文件?

点击手势识别器 - 哪个对象被点击了?

围绕其中心旋转 UIView 保持其大小

如何将 UInt32 设置为最大值