YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > PHP
검색
멤버이름    오토
비밀번호 
 

AES 256-bit 암호화

페이지 정보

작성자 MintState 댓글 0건 조회 22,594회 작성일 10-04-28 11:02

본문

AES 256-bit 암호화

고급 암호 표준(AES, Advanced Encryption Standard)은 2002년 부터 미국 표준으로 인증받은 암호화 방법 입니다.
국내는 SEED라는 블록 암호 알고리즘이 존재합니다.

우선 이 소스를 이용하기 위해서는 mcrypt 가 필요합니다. php 설치시 포함 하셔야 합니다.

* 소스
<?php
// 기본 32자
$key = hex2bin("12345678901234567890123456789088");
$iv = hex2bin("12345678901234567890123456789099");
$data = "http://yesyo.com한글~";
$encrypted = encrypt($key, $iv, $data);
printf("256-bit encrypted result:\n%s\n\n",$encrypted);
echo "<br />";
$decrypted = decrypt($key, $iv, $encrypted);
printf("256-bit decrypted result:\n%s\n\n",$decrypted);

function hex2bin($hexdata) {
		$bindata = "";
		for ($i=0;$i < strlen($hexdata);$i+=2) {
				$bindata .= chr(hexdec(substr($hexdata,$i,2)));
		}
		return $bindata;
}
function toPkcs7($value) {
		if (is_null($value)) $value = "" ;
		$padSize = 16 - (strlen($value) % 16);
		return $value . str_repeat(chr($padSize), $padSize);
}
function fromPkcs7($value) {
		$valueLen = strlen($value);
		if ($valueLen % 16 > 0) $value = "";
		$padSize = ord($value{$valueLen - 1});
		if ( ($padSize < 1) or ($padSize > 16) ) $value = "";
		// Check padding.
		for ($i = 0;$i < $padSize;$i++) {
				if (ord($value{$valueLen - $i - 1}) != $padSize) $value = "";
		}
		return substr($value, 0, $valueLen - $padSize);
}
function encrypt($key, $iv, $value) {
		if (is_null($value)) $value = "";
		$value = toPkcs7($value);
		$output = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $value, MCRYPT_MODE_CBC, $iv);
		return base64_encode($output);
}
function decrypt($key, $iv, $value) {
		if (is_null($value)) $value = "";
		$value = base64_decode($value);
		$output = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $value, MCRYPT_MODE_CBC, $iv);
		return fromPkcs7($output);
}
?>


* 결과
256-bit encrypted result: FVhzz1Vd7dC3LgUP0+Ln++6w4WX6tE9ljW5nqrszXYs=
256-bit decrypted result: http://yesyo.com한글~
첨부 파일
파일 종류: zip AES_Rijndael(asp).zip (4.4K, 53 views)

댓글목록

등록된 댓글이 없습니다.

Total 165건 6 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
40 MintState 11702 02-23
39 MintState 12479 02-23
38 MintState 16736 02-25
37 MintState 13478 02-25
36 MintState 16194 04-06
35 MintState 23664 04-09
34 MintState 18720 04-28
33 MintState 15385 07-28
32 MintState 18337 08-25
31 MintState 16597 10-09
30 MintState 28813 01-13
29 MintState 16062 02-12
열람중 MintState 22595 04-28
27 MintState 16474 06-30
26 MintState 18470 07-02
25 MintState 20199 07-02
24 MintState 17004 01-18
23 MintState 16290 03-04
22 MintState 14598 03-14
21 MintState 15379 04-17
20 MintState 14951 04-17
19 MintState 22152 04-18
18 MintState 17446 05-02
17 MintState 13373 10-21
16 MintState 13986 02-10
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™