次の関数を使用して、文字列の SHA256 エンコーディングを作成しました。
const char *s=[@"123456" cStringUsingEncoding:NSASCIIStringEncoding];
NSData *keyData=[NSData dataWithBytes:s length:strlen(s)];
uint8_t digest[CC_SHA256_DIGEST_LENGTH]={0};
CC_SHA256(keyData.bytes, keyData.length, digest);
NSData *out=[NSData dataWithBytes:digest length:CC_SHA256_DIGEST_LENGTH];
NSString *hash=[out description];
hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];
NSLog(@"Hash : %@", hash);
それは私に出力を与えます:8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92。しかし、次の出力が必要です: jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=. base64です。
生成した「hex」ハッシュを「base64」に変換するにはどうすればよいですか?
この Web サイトを使用して base64 ハッシュを生成しました: http://www.online-convert.com/result/7bd4c809756b3c16cf9d1939b1e57584