調べてもあまり出てこないので、ちょっとあっているのか不安ですが、簡単な文字列の比較では問題ない感じでした。
+(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 件のコメント:
コメントを投稿