투케이2K

73. (Objective-C/objc) CommonCrypto 사용해 MD5 암호화 데이터 인코딩 (encode) 수행 실시 본문

Objective-C

73. (Objective-C/objc) CommonCrypto 사용해 MD5 암호화 데이터 인코딩 (encode) 수행 실시

투케이2K 2022. 9. 21. 12:56

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("==================================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("==================================== \n");
    printf("\n");
    
    
    /*
     ------------------------------------
     [요약 설명]
     ------------------------------------
     1. MD5는 메세지 축약 알고리즘으로써, 파일 무결성 검사용도로 많이 쓰이고 있다
     ------------------------------------
     2. MD5는 SHA256과 동일하게 단방향 암호화 방식이며 디코딩(복호화)할 수 없다
     ------------------------------------
     3. SHA256은 160bit 의 해쉬를 제공하지만 MP5는 128bit 의 해쉬를 제공한다
     ------------------------------------
     4. 필요 import (ViewController.m) 선언 :
     
     #import <CommonCrypto/CommonDigest.h>
     ------------------------------------
     */
    
    
    // [try catch 구문 정의 실시]
    @try {
        
        // [초기 변수 선언 실시]
        NSString *stringData = @"hello";
        
        
        // [md5 암호화 인코딩 수행 실시]
        const char *cStr = [stringData UTF8String];
        unsigned char digest[CC_MD5_DIGEST_LENGTH];
        CC_MD5( cStr, (CC_LONG)strlen(cStr), digest ); // This is the md5 call

        NSMutableString *encodeData = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];

        for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
        [encodeData appendFormat:@"%02x", digest[i]];
        
        
        // [로그 출력 실시]
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> try :: 로직 처리 결과 확인] \n");
        printf("[encodeData :: %s] \n", encodeData.description.UTF8String);
        printf("==================================== \n");
        printf("\n");
    }
    @catch (NSException *exception) {
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> catch :: 예외 상황 확인] \n");
        printf("[name :: %s] \n", exception.name.description.UTF8String);
        printf("[reason :: %s] \n", exception.reason.description.UTF8String);
        printf("==================================== \n");
        printf("\n");
    }
}
 

[결과 출력]

 

 

반응형
Comments