일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- WebView
- android 효과음
- 안드로이드 gcm
- xe
- curl
- Android
- javascript
- 설치
- soundpool
- 자동 생성
- PHP
- 폼메일
- 우분투
- UML
- chart.js
- 안드로이드
- 자바스크립트
- C# IO
- not working
- mysql
- roundcube
- 안드로이드 푸시
- dovecot
- php 시큐어코딩
- FCM
- 안드로이드 푸쉬
- C#
- html5
- php 취약점
- Mail Server
- Today
- Total
그러냐
[알고리즘] 암호화/복호화 함수(실전 응용 가능) 본문
키를 이용한 암호화/복호화 함수입니다.
출처는 http://man.phpschool.com/이고
복잡한 소스를 약간 정리했습니다.
이정도면 실전에 응용해도 될정도로 충분히 안전하고 편리하다고 생각됩니다.
영문, 한글, 특수문자 테스트 결과도 좋았습니다.
< ?
function bytexor($a,$b)
{
$c="";
for($i=0;$i<16;$i++)$c.=$a{$i}^$b{$i};
return $c;
}
function decrypt_md5($msg,$key)
{
$string="";
$buffer="";
$key2="";
while($msg)
{
$key2=pack("H*",md5($key.$key2.$buffer));
$buffer=bytexor(substr($msg,0,16),$key2);
$string.=$buffer;
$msg=substr($msg,16);
}
return($string);
}
function encrypt_md5($msg,$key)
{
$string="";
$buffer="";
$key2="";
while($msg)
{
$key2=pack("H*",md5($key.$key2.$buffer));
$buffer=substr($msg,0,16);
$string.=bytexor($buffer,$key2);
$msg=substr($msg,16);
}
return($string);
}
// 사용 예
$message = "다양한 원본 메시지 東西南北 ABC abc 123 ※ ↔ ";
$key = "아..이정도면 매우 복잡한 키--;";
$encrypted = encrypt_md5($message, $key);
$decrypted = decrypt_md5($encrypted, $key);
echo "Encrypted = $encrypted";
echo " <HR>";
echo "Decrypted = $decrypted";
?>
출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=31255
'php' 카테고리의 다른 글
html 테이블 자동줄바꿈 (0) | 2016.02.29 |
---|---|
[함수] 간단한 암호화/복호화 함수 (0) | 2016.02.22 |
md5(), crypt(), password() 등의 문제점 및 로그인 암호화 보안 (0) | 2016.02.22 |
스팸글 자동등록 방지 오픈소스 - Securimage,captcha (0) | 2016.01.25 |
php.ini 설정하기 (0) | 2016.01.25 |