ホーム > タグ > MD5
MD5
NSDataのMD5メッセージダイジェストを計算する
- 2009-01-06 (火)
- iPhone SDK / Cocoa / Objective-C
NSDataクラスにMD5メッセージダイジェストを計算するメソッドを追加してみました。
NSData+Digest.h
#import @interface NSData (Digest) - (NSString *)MD5DigestString; @end
NSData+Digest.m
#import "NSData+Digest.h" #import "CommonCrypto/CommonDigest.h" @implementation NSData (Digest) - (NSString *)MD5DigestString { unsigned char digest[CC_MD5_DIGEST_LENGTH]; CC_MD5([self bytes], [self length], digest); char md5cstring[CC_MD5_DIGEST_LENGTH*2]; for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { sprintf(md5cstring+i*2, "%02x", digest[i]); } return [NSString stringWithCString:md5string length:CC_MD5_DIGEST_LENGTH*2]; } @end
参考:iPhone で MD5 ハッシュ値を取得には? - 1/4dot Blog
ちなみに、最初はメソッド名を MD5Digest としていたのですが、NSDataを拡張している別のカテゴリに同名のメソッド(NSConcreteDataという非公開クラスのインスタンスとしてMD5メッセージダイジェストを返してきます)が存在するようで、そのせいで少々はまりました…。
同名のメソッドが複数のカテゴリで定義されていた場合、どのカテゴリの定義が有効になるかは保証されていません。
(「詳解 Objective-C 2.0」より)
プライベートメソッドでなく公開メソッドにしておいてくれればよかったのになー、と思ったことは言うまでもありません。
関連する投稿
- Comments: 0
- Trackbacks: 0
Home > Tags > MD5
- Search
- Feeds
- Meta