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

 
작성일 : 10-04-28 11:02
AES 256-bit 암호화
 글쓴이 : MintState
조회 : 14,648  
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, 12 views)
Rated 4.0/5 (80%) (1 Votes)

(\__/)
(='.'=)
(")_(")~
Search Infomation by MintState
MintState

 
 

Total 160
번호 제   목 글쓴이 날짜 조회
160 첫문자를 대문자, 소문자로 변경하는 함수 MintState 08-08 245
159 header를 이용한 페이지 이동 함수 MintState 07-31 247
158 URL에서 한글만 인코딩 MintState 05-29 349
157 youtube preg_replace pattern MintState 02-22 635
156 특정 디렉토리의 하위파일 목록 가져오기 MintState 02-21 631
155 [정규식] 해시태그(#) 뽑아내기 MintState 11-12 2530
154 serialize unserialize 배열정보를문자열의 형태로 변환 MintState 12-08 2553
153 실시간 화면 출력 flush, ob_flush MintState 02-26 4999
152 [MYSQL] 생년월일로 나이 반환 MintState 01-22 7027
151 php 절사 MintState 07-27 4889
150 Referer URL 이용하여 검색엔진 키워드 뽑아내기 MintState 02-10 5437
149 달력 소스 MintState 10-21 5692
148 MYSQL 예약어 MintState 05-02 7925
147 페이징 클래스 v1.0 (PHP4/5) MintState 04-18 6767
146 GD 라이브러리 MintState 04-17 7313
145 GD를 이용한 기본기능 썸네일,CROP,CROP썸네일,텍스트 만들기 MintState 04-17 6883
144 xml 통신(수신) - Web 언어별 MintState 03-14 7225
143 무조건 알아야 할 PHP 속도 테스트 14 가지 MintState 03-04 6955
142 PHP를 이용하여 MYSQL Sleep 프로세스 죽이기 MintState 01-18 8547
141 youtube 주소로 정보 반환 MintState 07-02 8703
140 방문자의 브라우저와 OS등을 가져 오는 클레스 MintState 07-02 11205
139 Allowed memory size Error 발생시 처리방법 MintState 06-30 9168
138 AES 256-bit 암호화 MintState 04-28 14649
137 PHP 5.3.0 부터 POSIX Regex 함수 제거 MintState 02-12 8513
136 [Function] json_encode(), json_decode() MintState 01-13 14763
 1  2  3  4  5  6  7  
모바일 버전으로 보기
CopyRight ©2004 - 2017, YesYo.com MintState. ™