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

コメントを投稿

ReactNativeでAndroid対応する話

前提 ReactNativeでiOS版のアプリをリリースしていて、Android版をリリースする話 トラブルシューティング Build.VERSION_CODES.Q が存在しないエラー compileSdkVersionを29以上にすると解決 メモリー足りないエラー Execu...