PHP & Others

3DES 암호화/복호화 예제 - 양방향 암호화 mcrypt_encrypt

컨텐츠 정보

본문

srand();
$s_key = "encrypt seed key";
$s_vector_iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_ECB), MCRYPT_RAND);

$str = "암호화 테스트";

### 암호화 ####
$en_str = mcrypt_encrypt(MCRYPT_3DES, $s_key, $str, MCRYPT_MODE_ECB, $s_vector_iv);
//암호화된 값은 binary 데이터이므로, ascii로 처리하기 위해서는 별도의 변환이 필요하다
$en_base64 = base64_encode($en_str);  //base64 encoding을 한 경우 => SVzBe9MN9Htf7zEtp+Rn3g==
$en_hex = bin2hex($en_str);  //hex로 변환한 경우 => 495cc17bd30df47b5fef312da7e467de

### 복호화 ####
$de_str = base64_decode($en_base64); //base64 encoding을 binary로 변환
$de_str = pack("H*", $en_hex); //hex로 변환한 ascii를 binary로 변환
$out_str = mcrypt_decrypt(MCRYPT_3DES, $s_key, $de_str, MCRYPT_MODE_ECB, $s_vector_iv);

echo $out_str;
=> 암호화 테스트


관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
전깃불이 나간 어두운 방안에서 초가 있으면서도 초를 아끼느라 켜지 않는다면 어떻게 될까. 마찬가지로 한두 마디의 상냥한 말이면 상대방의 마음을 밝게 해 주고 유쾌한 분위기를 만들 수 있는데 그러지 않는다면 그것은 마치 초를 아끼기 위해 어둠 속에 있는 것과 같다. (T. 제퍼슨)