2011-05-15 24 views
10

Estoy buscando ayuda para obtener MD5 y SHA-1 en mi aplicación de iPhone. ¿Alguien me puede dar una idea de cómo obtenerlos?Obtener MD5 y SHA-1

+0

@ user754229: Si Googled para http://www.google.com/search?rlz=1C1SNNT_enUS377US377&sourceid=chrome&ie=UTF-8&q = cómo + a + obtener + md5 + y + sha1 + en + objetivo + c + (iPhone) La respuesta de Saurabh habría sido el 4º enlace en los resultados. –

+1

@Paul: SO está tratando de consolidar toda la información, para que Google traiga gente aquí. http://meta.stackexchange.com/questions/87652/discourage-google-for-it-answers –

Respuesta

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; 

} 

también echar un vistazo a mi blog aquí - http://www.makebetterthings.com/blogs/iphone/how-to-get-md5-and-sha1-in-objective-c-ios-sdk/

+0

Muchas gracias !!!! – user754229

+1

No olvide agregar '#import ' en la parte superior de sus códigos de implementación. No es necesario enlazar con 'libcommonCrypto.dylib' – Raptor

+0

¿Por qué inicias el mutableString con CC_SHA1_DIGEST_LENGTH * 2 y no solo con [NSMutableString string]? – Oliver