일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- goblin sword
- 레고
- 시사회
- 카이로소프트
- 아이러브니키
- 유료
- 맛집
- 아이폰게임
- 아이패드
- Monument Valley
- JavaScript
- 잡담
- Pink
- 강추
- 핑크
- 영화
- 후기
- jQuery
- Monument
- 감상
- 게임
- 가사
- php
- 모뉴먼트 밸리
- 모뉴먼트
- 아이폰
- 일상
- 공략
- 추천
- great forest
- Today
- Total
잡담소장소
Encrypt & Decrypt in PHP 본문
오늘은 팀장님께서 정보 암호화를 위해 암복호화 함수를 알아보라고 하셨다
원래는 DES나 RC2나 RC4같은 걸 따로 찾아볼까 하다가
php에서 검색해보니 따로 암복호화 함수를 제공하고 있었다.
(뭐 당연할거라 생각하긴 했지만..-_-;;)
구글링으로 찾아본 결과 간단한 테스트 소스를 얻을 수 있었다.
//시작을 알리는글을 가볍게 써보자 :3 ㅋㅋ
echo "알고리즘 리스트\r\n";
//랜덤한 수를 생성하도록 한다. 딱히 변수로 받지 않아도 되는 듯염ㅋ
srand();//키가 될 값
$s_key = "encrypt seed key";
//이니셜벡터(initial vector 를 생성하기 위해 일단 사이즈 생성)
$s_vector_iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_CBC);
//사이즈에 맞는 벡터 생성
$s_vector_iv = mcrypt_create_iv($s_vector_iv_size, MCRYPT_RAND);
$str = "암호화 테스트";
/*
암호화
mcrypt_encrypt를 이옹해서 사용하고자 하는 대칭암호화와 키값, 암호화하고자하는 값, 모드, 이니셜벡터값들을 넣어준다.
암호화만으로 끝내는것이 아니라 base64와 hex값으로 변환
*/
$en_str = mcrypt_encrypt(MCRYPT_3DES, $s_key, $str, MCRYPT_MODE_CBC, $s_vector_iv);
$en_base64 = base64_encode($en_str); //base64 encoding
$en_hex = bin2hex($en_str); // hex로 변환echo "암호화된 메세지: $en_str \r\n";
echo "base64로 인코딩한경우:$en_base64\r\n";
echo "hex로 변환한 경우: $en_hex\r\n";/*
복호화
암호화된 값을 hex로 변환하고 base64로 인코딩했기 때문에
다시 되돌려줘야한다.
아니면 이상한 값이 복호화됨ㅋ
*/
$de_str = base64_decode($en_base64);
$de_str = pack("H*", $en_hex); // hex로 변환한 ascii를 바이너리로 변환
$out_str = mcrypt_decrypt(MCRYPT_3DES, $s_key, $en_str, MCRYPT_MODE_CBC, $s_vector_iv);echo "복호화된 값: $out_str\r\n";
이제 이 방법을 대입해서 코딩하면 끝 '~'ㅋ
'Study ;3' 카테고리의 다른 글
효과적인 보고서 쓰기 (0) | 2010.10.28 |
---|---|
jQuery를 이용한 visibility (1) | 2010.10.06 |
jQuery를 이용한 테이블의 같은 값 찾기 - in PHP (0) | 2010.10.05 |
정규식을 이용한 검색 및 파일 쓰기 in PHP (0) | 2010.09.03 |
RegEx in PHP (0) | 2010.08.30 |