こんにちは、最愛のコミュニティ、Cocoaでは、CC_MD5で使用する文字列をエンコードするためにUTF-7を明示的に使用する方法はありますか?
私は文字列の正確なMD5を作成する問題に遭遇します。 PHPとC#のMD5と一致する必要があります。これを読んで:PHP MD5 not the same as .NET MD5、私は最初にUTF - 7エンコーディングを使用して文字列を変換する必要がありますね。しかし、現在私はNSStringがUTF-8だけをサポートしていることを知っています。これは、文字列からMD5を作成するための私のコードです:私は間違っていないよ場合[str UTF8String]
を読んラインで、
-(NSString *) md5:(NSString *) str
{
const char *cStr = [str UTF8String];
unsigned char result[16];
CC_MD5(cStr, strlen(cStr), result);
return [NSString stringWithFormat:
@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
だから、私は[str UTF7String]
を読んで、何かにこれを変更する必要があります。私は正しいですか?ココアならその機能はありますか?現在のところ、私のグーグルではこれで良い結果は得られませんでした。
ありがとうございました
あなたは '[STR dataUsingEncoding:NSUTF8StringEncoding]を使用して、この高速化することができます'とデータの 'length'を求めます。 'strlen'は高価です。 –
ありがとう@PeterHosey。私は自分のコードを変更します!しかし、どのコードでstrlenを置き換えるのですか? – swdev
私が言ったように、データにその「長さ」を尋ねます。 –