このコードを使用して、md5 文字列ハッシュを取得します
- (NSString *) md5:(NSString *) input
{
const char *cStr = [input UTF8String];
unsigned char digest[16];
CC_MD5( cStr, strlen(cStr), digest ); // This is the md5 call
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
私がこれを行うと、完璧に動作します
[self md5:@"mystring"];
でもこれ作るときは
[self md5:userId];
エラーがあります
キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[NSDecimalNumber UTF8String]: 認識されないセレクターがインスタンス 0x61a7080 に送信されました'
userId は NSString です
NSString *userId; @property(retain,nonatomic) NSString *userId;
しかし、それはFacebookのユーザーIDを含み、「3309843」のようなものを試しました
[self md5:[userId stringValue]]];
そして、私はまだ同じエラーがあります
更新 私はこれを試しました
[self md5:@"980232376"];
それでも同じエラーが発生します。問題はメソッド md5 にあると思います。数字の文字列の md5 を取得できませんか?