2011-05-15 16 views
10

iPhone uygulamasında MD5 ve SHA-1'i alma konusunda yardım arıyorum. Bunları nasıl elde edeceğimi bilen var mı?MD5 ve SHA-1'i edinme

+0

user754229 @: Eğer http://www.google.com/search?rlz=1C1SNNT_enUS377US377&sourceid=chrome&ie=UTF-8&q için google'dan ederse = + + + + + + + + + + + + + + + + + + (+) + + + + + + + (+) + olsun + olsun + + + + Saurabh cevap sonuçlarda 4. bağlantı olurdu. –

+1

@Paul: SO tüm bilgileri birleştirmeye çalışıyor, böylece Google kullanıcıları buraya getirecek. http://meta.stackexchange.com/questions/87652/discourage-google-for-it-answers –

cevap

16
#include <CommonCrypto/CommonDigest.h> 

-(NSString*) sha1:(NSString*)input 
{ 

NSData *data = [input dataUsingEncoding: NSUTF8StringEncoding]; 

uint8_t digest[CC_SHA1_DIGEST_LENGTH]; 

CC_SHA1(data.bytes, data.length, digest); 

NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; 

for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) 
[output appendFormat:@"%02x", digest[i]]; 

return output; 

} 

- (NSString *) md5:(NSString *) input 
{ 
const char *cStr = [input UTF8String]; 
unsigned char digest[CC_MD5_DIGEST_LENGTH]; 
CC_MD5(cStr, (CC_LONG)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; 

} 

burada da benim blog post bakabilirsiniz - http://www.makebetterthings.com/blogs/iphone/how-to-get-md5-and-sha1-in-objective-c-ios-sdk/

+0

Çok teşekkürler! – user754229

+1

Uygulama kodlarınızın üst kısmında '#import ' öğesini eklemeyi unutmayın. 'LibcommonCrypto.dylib' ile bağlantı kurmaya gerek yok – Raptor

+0

Neden CC_SHA1_DIGEST_LENGTH * 2 ile mutableString başlatıyorsunuz ve sadece [NSMutableString string] yapmıyorsunuz? – Oliver