調べてもあまり出てこないので、ちょっとあっているのか不安ですが、簡単な文字列の比較では問題ない感じでした。
+(NSString*) sha1ForStr:(NSString *)str {
const char *c = [str UTF8String];
unsigned char result[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(c, strlen(c), result);
NSMutableString* strs = [NSMutableString string];
for (int i=0; i < CC_SHA1_DIGEST_LENGTH; i++) {
[strs appendFormat:@"%02x", result[i]];
}
return strs;
}
+(NSString*) sha256ForStr:(NSString *)str {
const char *c = [str UTF8String];
unsigned char result[CC_SHA256_DIGEST_LENGTH];
CC_SHA256(c, strlen(c), result);
NSMutableString* strs = [NSMutableString string];
for (int i=0; i < CC_SHA256_DIGEST_LENGTH; i++) {
[strs appendFormat:@"%02x", result[i]];
}
return strs;
}
ちなみにperlでは
perl -MDigest::SHA -e 'print Digest::SHA::sha1_hex("aaa"), "\n"'
perl -MDigest::SHA -e 'print Digest::SHA::sha256_hex("aaa"), "\n"'
です。
0 件のコメント:
コメントを投稿