Ale*_*ijs 42 hash xcode sha1 objective-c
如何从a创建SHA1 NSString.
假设NSString设置为:
NSString *message = @"Message";
Run Code Online (Sandbox Code Playgroud)
我可以使用PHP创建一个SHA1哈希sha($message).但不幸的是,它在Objective-C中并不像那样.
hyp*_*ypt 91
我在NSString的类别中有这个(可在https://github.com/hypercrypt/NSString-Hashes获得):
#import <CommonCrypto/CommonDigest.h>
...
- (NSString *)sha1
{
NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, (CC_LONG)data.length, digest);
NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for (int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
{
[output appendFormat:@"%02x", digest[i]];
}
return output;
}
Run Code Online (Sandbox Code Playgroud)
从Xcode 10.0开始,您应该使用import CommonCrypto它,因为它现在可以在Swift中使用!如果您最近迁移到Xcode 10.0并使用旧方法,那么这可能是您进行更改的提示:
命令CompileSwift失败,出现非零退出代码
vir*_*ata 12
- (NSString *)sha1:(NSString *)str {
const char *cStr = [str UTF8String];
unsigned char result[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(cStr, strlen(cStr), result);
NSString *s = [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3], result[4],
result[5], result[6], result[7],
result[8], result[9], result[10], result[11], result[12],
result[13], result[14], result[15],
result[16], result[17], result[18], result[19]
];
return s;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38242 次 |
| 最近记录: |