2020. 2. 12. 17:05
반응형

php 에서 암호화 모듈이 포함되어서 설치가 되었다면

해당 암호화 모듈을 사용하면 되지만

설치시 포함되지 않았다면 외부 암호화 모듈을 사용해야 된다.

외부 암호화 모듈중에서 가장 안정적인 phpseclib crypt를 소개한다.

phpseclib crypt에서 AES, Triple DES 를 사용해 봤는데 문제 없이 진행 가능했다.

java와 상호 호환에도 문제 없었다.

 

// AES 샘플

include "../phpseclib/Crypt/AES.php";

$aes = new Crypt_AES();

$aes->setKey('key로 사용할 비밀번호');

$enc = base64_encode($aes->encrypt("암호화할 내용");

echo $enc; // 암호화한 내용을 출력한다.

 

AES 암호화의 경우 java와 호환하기 위해서는

JAVA의 Cipher instance는 "AES/CBC/PKCS5Padding" 으로 설정해야 한다.

Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");

 

// TripleDES

include "../phpseclib/Crypt/TripleDES.php";

$aes = new Crypt_TripleDES(CRYPT_DES_MODE_ECB);

$aes->setKey('key로 사용할 비밀번호');

$enc = base64_encode($aes->encrypt("암호화할 내용");

echo $enc; // 암호화한 내용을 출력한다.

 

TripleDES 암호화의 경우 java와 호환하기 위해서는

JAVA의 Cipher instance는 key 길이에 따라 다르게 입력된다.

String cipherInstanceName = (key().length() == 24) ? "DESede/ECB/PKCS5Padding" : "DES/ECB/PKCS5Padding";

Cipher c = Cipher.getInstance(cipherInstanceName);

 

 

그 외의 다른 암호화도 사용에 크게 다르지 않을것으로 생각 된다. (지원되는 암호화 : AES, Rijndael, Twofish, Blowfish, DES, 3DES, RC4, RC2)

다운로드, sample 코드는 http://phpseclib.sourceforge.net/crypt/examples.html 여기에서 확인 가능하다. (1.0버전으로 사용)

phpseclib를 다운로드 받은 뒤에 crypt 부분만 사용하기 위해서는 Crypt, Math 폴더만 있어도 정상적으로 작동 된다.

 

반응형

'Asp-Php' 카테고리의 다른 글

php 에서http 요청 처리  (0) 2020.02.12
asp calendar 모듈  (1) 2010.04.09
asp base64 decoding, encoding (한글처리)  (2) 2010.04.09
Posted by seongsland