iPhone SHA1、SHA256の生成

iPhoneでSHA1、SHA256の生成方法。
調べてもあまり出てこないので、ちょっとあっているのか不安ですが、簡単な文字列の比較では問題ない感じでした。


+(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 件のコメント:

コメントを投稿

DataStoreの辛いところ

# DataStoreの限界 FacebookやインスタグラムのようなSNSで、投稿、公開範囲、お気に入りなどの機能をDataStoreで実現しようとするとどうしても辛くなる。 ## DataStoreで実現可能? - users - id - feeds - i...