3des를 이용한 암호화/복호화 코드를 만드는데 뭐가 문제인지 잘 모르겠어요
openssl에 있는
DES_ede2_cbc_encrypt() 라는 함수를 이용해서 암호화/복호화 하려는데 잘 안되네요
지금 쓰는건 제가 테스트를 위해 만들었던 소스 입니다.
.........
DES_cblock a,c,e="\0";
DES_key_schedule b,d;
char cli[155] = "abcdefeghijdkelslkjalksjldkfnm,xlkjfoeidlzlsd";
............
char input[25];
char output[25];
memset(input,0,sizeof(input));
memset(output,0,sizeof(output));
strcpy(input,"mkdze33dav");
...........
DES_string_to_2keys(cli,&a,&c);
DES_set_odd_parity(&a);
DES_set_odd_parity(&c);
printf("DES_set_key_checked &a %d\n",DES_set_key_checked(&a,&b));
printf("DES_set_key_checked &a %d\n",DES_set_key_checked(&c,&d));
padding_message(input); //메시지 크기를 8의 배수로 맞추어주기 위한 함수입니다.
DES_ede2_cbc_encrypt(input, output, strlen(input), &b, &d, &e, DES_ENCRYPT);
memset(input,0,sizeof(input));
DES_ede2_cbc_encrypt(output, input, strlen(output), &b, &d, &e, DES_DECRYPT);
...............
이렇게 복호화까지 해줬는데
아예 엉뚱한 값이 나오네요... 제가 key에 대해서 무지한건가요?
key를 string을 통해 생성하고, 그것의 odd parity를 설정해주고
키 스케쥴에다가 적용했는데... 도와주세요.. 어디가 잘못된지 모르겠어요..
댓글 달기