SO で iOS と SHA256 について少なくとも 6 ページを見ましたが、何が起こっているのかまだわかりません。
一般的に、関数を使用して PHP で SHA256 を実行することに慣れており、次のhash()
ような文字列値を返します。db1204372d8d9f14acc608b497227047d63ad868987883d0a29198be8e6ce853
アプリとサーバー間のセキュリティを強化するために、iOS アプリに SHA256 を実装しようとしていますが、エンコード部分が頭を悩ませています...
私は NSData カテゴリを使用しています:
+ (NSData *)sha256:(NSData *)data {
NSMutableData *out = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];
CC_SHA256(data.bytes, data.length, out.mutableBytes);
if ( CC_SHA256(data.bytes, data.length, out.mutableBytes) ) return out;
return nil;
}
ただし、結果の NSData オブジェクトを (サーバーに送信するために) NSString にエンコードしようとしても、このような文字列になってしまいます。ã°ÄBüûôÈo¹$'®AädL¤xR¸U
私の質問 -hash
同じ値をいずれかのメソッドに渡すと同じ値が得られるように、 と同じように動作するカテゴリを実装するにはどうすればよいですか?
助けてくれてありがとう