iOS MD5 SHA1 암호화

1579 단어
MD5 암호화 구현 방법
MD5의 시간 방법은 ****라는 C 언어의 라이브러리를 직접 사용하여 실현할 수 있습니다.NSString의 범주별로 NSString을 확장할 수 있는 방법은 다음과 같습니다.
-(NSString*)stringToMD5:(NSString *)str{
    //         UTF-8  
    const char *cstr = [str UTF8String];
    //            
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    //         32  16    
    CC_MD5(cstr, (CC_LONG)strlen(cstr), result);
    //          
    NSMutableString *saveResult = [NSMutableString string];
    //         ,%02x      16    ,  2  0
    for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
        [saveResult appendFormat:@"%02x",result[i]];
    }
    
    return saveResult;
}

SHA1 암호화 구현 방법
SHA1의 실현 방식은 MD5와 유사하며 이 라이브러리를 직접 사용할 수 있다. 구체적으로 코드를 살펴보자.
-(NSString*)stringToSHA1:(NSString *)str{
    //    cstring     MD5      const char *cstr = [str UTF8String];
    const char *cstr = [str cStringUsingEncoding:NSUTF8StringEncoding];
    //      NSData  
    NSData *data = [NSData dataWithBytes:cstr length:self.length];
    //     20   1    
    uint8_t digest[CC_SHA1_DIGEST_LENGTH];
    //       16    
    CC_SHA1(data.bytes, data.length, digest);
    //     40   string  
    NSMutableString *result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH *2];
    //       
    for (int i = 0 ; i < CC_SHA1_DIGEST_LENGTH; i++) {
        [result appendFormat:@"%02x",digest[i]];
    }
    
    return result;
}


지식점
4
  • 1바이트 uint8t

  • 4
  • 2바이트 uint16t

  • 4
  • 4바이트 uint32t

  • 4
  • 8바이트 uint64t
  • 좋은 웹페이지 즐겨찾기