티스토리 뷰

반응형


YiniCryptSeed256_x64.dll


YiniCryptSeed256_x64.lib


YiniCryptSeed256_x64.h

SEED 256Bit Windows Standard DLL 64Bit O/S용 입니다.


1. 암/복호화 알고리즘: KISA SEED 256Bit

2. Operation Mode    : CBC

3. Padding           : PKCS5

4. Encoding/Decoding : BASE64


요즘은 대부분 Windows 7에서 64Bit O/S를 많이 사용하기 때문에

64Bit용 Windows Application에서 사용할 수 있도록 되어 있습니다.


암호화된 데이타를 바로 DB에 Insert가능하도록 BASE64 Encoding기능도 포함되어 있습니다.


/****************************************************************

  SEED256Bit/CBC/PKCS5/BASE64 암호화 함수


  RETURN : 0 >  : 이상 암호화 후 pOutput 변수 데이타의 길이 

           -999 : 데모버전 유효기간 초과 (해당값이 나올 경우 사용 불가) 

           0    : 암호화 실패 (암호화가 불가능 한 코드가 있음) 

*****************************************************************/

extern "C" __declspec(dllimport) int SEED_ENCRYPT_256(const char cKeyValue[32],    /*  사용자 정의 암호화 키 정보 32 Byte 필수 */

                                                      const char cInitValue[16],   /*  사용자 정의 IV 정보 16 Byte 필수 */

       char *pInput,                /*  암호화 할 평문(TEXT) 데이타 */

     int nInputLength,            /*  암호화 할 평문 길이 (Byte 기준) */

     char *pOutput);              /*  암호화 된 데이타 */


/****************************************************************

  SEED256Bit/CBC/PKCS5/BASE64 복호화 함수


  RETURN : 0 >  : 이상 복호화 후 pOutput 변수 데이타의 길이 

           -999 : 데모버전 유효기간 초과 (해당값이 나올 경우 사용 불가) 

           0    : 복호화 실패 (정상적인 암호화 데이타가 아니거나 암호화 KEY 또는 IV가 틀림) 

*****************************************************************/

extern "C" __declspec(dllimport) int SEED_DECRYPT_256(const char cKeyValue[32],    /*  사용자 정의 암호화 키 정보 32 Byte 필수 */

                                                      const char cInitValue[16],   /*  사용자 정의 IV 정보 16 Byte 필수 */

       char *pInput,                /*  복호화 할 암호 데이타 */

     int nInputLength,            /*  복호화 할 암호 데이타 길이 (Byte 기준) */

     char *pOutput);              /*  복호화 된 데이타 */



  #pragma comment(lib,"YiniCryptSeed256_x64.lib")
  #include "YiniCryptSeed256_x64.h"

아래는 사용 예제 샘플 코드 입니다. (VisualStudio C++)

        char UserKey[32+1];
	memset(UserKey, 0x00, sizeof(UserKey));
	strncpy(UserKey, "ABCDEFGHIJ"
		         "KLMNOPQRST"
			 "UVWXYZABCD"
			 "EF", 32);

	char InitVactor[16+1];
	memset(InitVactor, 0x00, sizeof(InitVactor));
	strncpy(InitVactor, "ABCDEFGHIJ"
		            "KLMNOP",
			    16);


	char pbData[1024];
	memset(pbData, 0x00, sizeof(pbData));	
	strncpy(pbData,"한글테스트 알파벳abcdefgHIJKLMN1234567890",
		strlen("한글테스트 알파벳abcdefgHIJKLMN1234567890"));

	TRACE("암호화 할 데이타:");
	TRACE(pbData);
	TRACE("\n");

	int i = strlen(pbData);
	
	char EncryptData[4096];
	memset(EncryptData, 0x00, sizeof(EncryptData));
	int n = SEED_ENCRYPT_256(UserKey,InitVactor ,pbData, i, EncryptData);
	
	TRACE("암호화 후 데이타:");
	TRACE(EncryptData);
	TRACE("\n");
	
	char DecryptData[1024];
	memset(DecryptData, 0x00, sizeof(DecryptData));
	int j = SEED_DECRYPT_256(UserKey,InitVactor, EncryptData, n, DecryptData);
	
	TRACE("복호화 후 데이타:");
	TRACE(DecryptData);
	TRACE("\n");

첨부된 파일은 DEMO 버전으로 한시적으로만 사용 가능 하며, 정식버전은 유료 입니다.

관련 문의는 메일로 보내주시기 바랍니다.


반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 30 31
글 보관함