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
행복해지고 싶다면, 잠시 동안만이라도 가슴에 손을 얹고 생각해 보라. 그러면 진정한 즐거움은, 발치에 돋아나는 잡초나 아침 햇살에 빛나는 꽃의 이술과 같이 우리 주변에 무수히 널려 있다는 것을 알 수 있을 것이다. 《하루 5분 생각이 인생을 결정한다 》 (이범준)