이글은 예전 제 싸이월드 블로그에 작성한 글을 티스토리로 옮긴 것입니다.
원문 : 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 ;
}

 

+ Recent posts