이글은 예전 제 싸이월드 블로그에 작성한 글을 티스토리로 옮긴 것입니다.
원문 : http://cy.cyworld.com/home/21147242/post/503F6ECDDD55739A07C68401
원문 작성일 : 2012.08.30
----------------------------------------------------------------------------------------
첨부파일 : des.zip
일하다가 스펙 요구사항으로 Triple DES - ECB 방식으로 암호화하기를 요구함.
그러면서 예시를 들었다.
key : 10918C6845AB98EF894C6B57BC6776DC [MSB... LSB]
DATA : 00000000000000000000000012345678 [MSB...LSB]
암호화 결과 :
TDES_ECB(Data) : E904F93AD9C2C3848474DB2740AD6162 [MSB...LSB]
열심히 구글링~~
ms-word 파일인데
3DES Source Code.doc
인데... 링크를 못가져오겠네... ㅡㅡa
깔끔하게 des.h, des.c 로 되어있음.
아래와 같이 key 값과 Data 값을 넣으니 깔끔하게 결과를 얻을 수 있었다. 오홍~
des.h, des.c 코드는 첨부파일을 보세요~
첨부파일의 3DES Source Code.doc 파일을 보면 그냥 des 코드도 확인할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 |
#include <stdio.h>
#include "des.h"
int main()
{
des3_context ctx3 ;
unsigned char key1[8] = {0x10, 0x91, 0x8C, 0x68, 0x45, 0xAB, 0x98, 0xEF};
unsigned char key2[8] = {0x89, 0x4C, 0x6B, 0x57, 0xBC, 0x67, 0x76, 0xDC};
unsigned char plaintext[2][8] = {{0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00, 0x00,0x00,0x00,0x12,0x34,0x56,0x78}};
unsigned char enc[8] ;
int ii, jj ;
des3_set_2keys(&ctx3, key1, key2) ;
for (ii = 0; ii<2; ii++)
{
des3_encrypt(&ctx3, plaintext[ii], enc) ;
for (jj = 0; jj<8; jj++)
printf("%02x ", enc[jj]&0xff) ;
}
printf("\n") ;
return 1 ;
} |
'삽질미학 > C,C++' 카테고리의 다른 글
Unblock me 게임 풀어주는 코드 (0) | 2017.01.09 |
---|---|
[Linux C/C++] 실행파일 생성시간을 이용한 버전관리 (0) | 2016.10.24 |
리눅스 getch() 모듈화하기 (0) | 2016.10.20 |
C++ 코드를 C에서 사용하기 (0) | 2016.10.14 |
C 에서 STL map 컨테이너를... - SCL 소개 (0) | 2016.10.14 |