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;
=> 암호화 테스트


관련자료

등록된 댓글이 없습니다.
Today's proverb
성공하느냐 실패하느냐는 다른 사람이 아닌 바로 내가 하는 일이다. 내가 바로 힘이다. 나는 내 앞의 장애물을 치울 수도 있고, 미로 속에서 길을 잃을 수도 있다. 내 선택, 내 책임 이다. 이기거나 지는 것은 오직 나만이 가진 내 운명의 열쇠에 달려있다. (알레인 맥스웰)