본문 바로가기
ios 뽀개기/objective-c

암호화 복호화

by 인생여희 2019. 1. 2.
반응형

암호화 복호화







#import <UIKit/UIKit.h>


#import "RNDecryptor.h"

#import "RNEncryptor.h"



@interface ViewController : UIViewController

{

    NSString *secretKey;                                                                         //salt

}

- (NSString *)getCryptorEncrypt:(NSString *)toEncryptString;            //암호화


- (NSString *)getRNCryptorDecript:(NSString *)toDecriptDataString;          //복호화


@end





#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    

    secretKey = @"thisissalt";                                  //salt : 임의의 문자설정

    

    //암호화할 문자열

    NSString * password = @"2019년1월2일";

    

    //암호화 함수 호출

    NSString * encryptedString= [self getCryptorEncrypt:password];

    NSLog(@"암호화된 문자열 : %@" , encryptedString);

    //AwEuV776EAa6APKdLuLGSwuGnTKZ6HvcurFJw26nLHjxxrCzs1TCNLK55h9g53BSyFY/nC6PB9IQEwJn9yIcqcPy2HJoDT9K/YPBs240l0hASA==

    

    

   //복호화 함수 호출

   NSString* decriptedString = [self getRNCryptorDecript:encryptedString];

    NSLog(@"복호화된 문자열 : %@" , decriptedString); //2019년1월2일

}



//암호화 함수

- (NSString *)getCryptorEncrypt:(NSString *)toEncryptString{

    

    NSData *data = [toEncryptString dataUsingEncoding:NSUTF8StringEncoding];

    NSError *error;

    

    NSData *encryptedData = [RNEncryptor encryptData:data

                                        withSettings:kRNCryptorAES256Settings

                                            password:secretKey

                                               error:&error];

    if(error != nil){

        NSLog(@"암호화 중에 오류가 발생했습니다 : %@" , error.localizedDescription);

    }

    return encryptedData.base64Encoding;

}


//복호화 함수

- (NSString *)getRNCryptorDecript:(NSString *)toDecriptDataString

{

    

  NSData *data =  [[NSData alloc]initWithBase64EncodedString:toDecriptDataString options:NSDataBase64DecodingIgnoreUnknownCharacters];

    

    NSError *error;

    NSData *decryptedData = [RNDecryptor decryptData:data

                                        withPassword:secretKey

                                               error:&error];

    if(error != nil){

        NSLog(@"복호화 중에 오류가 발생했습니다 : %@" , error.localizedDescription);

    }

    NSString * result = [[NSString alloc]initWithData:decryptedData encoding:NSUTF8StringEncoding];

    return result;

}



- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



@end



파일1


RunCyptor.zip


파일2 (전역함수)

RunCyptor2.zip











반응형

댓글