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

AES 256-bit 암호화

페이지 정보

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

본문

AES 256-bit 암호화

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

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

* 소스
01<?php
02// 기본 32자
03$key = hex2bin("12345678901234567890123456789088");
04$iv = hex2bin("12345678901234567890123456789099");
05$data = "http://yesyo.com한글~";
06$encrypted = encrypt($key, $iv, $data);
07printf("256-bit encrypted result:\n%s\n\n",$encrypted);
08echo "<br />";
09$decrypted = decrypt($key, $iv, $encrypted);
10printf("256-bit decrypted result:\n%s\n\n",$decrypted);
11 
12function hex2bin($hexdata) {
13        $bindata = "";
14        for ($i=0;$i < strlen($hexdata);$i+=2) {
15                $bindata .= chr(hexdec(substr($hexdata,$i,2)));
16        }
17        return $bindata;
18}
19function toPkcs7($value) {
20        if (is_null($value)) $value = "" ;
21        $padSize = 16 - (strlen($value) % 16);
22        return $value . str_repeat(chr($padSize), $padSize);
23}
24function fromPkcs7($value) {
25        $valueLen = strlen($value);
26        if ($valueLen % 16 > 0) $value = "";
27        $padSize = ord($value{$valueLen - 1});
28        if ( ($padSize < 1) or ($padSize > 16) ) $value = "";
29        // Check padding.
30        for ($i = 0;$i < $padSize;$i++) {
31                if (ord($value{$valueLen - $i - 1}) != $padSize) $value = "";
32        }
33        return substr($value, 0, $valueLen - $padSize);
34}
35function encrypt($key, $iv, $value) {
36        if (is_null($value)) $value = "";
37        $value = toPkcs7($value);
38        $output = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $value, MCRYPT_MODE_CBC, $iv);
39        return base64_encode($output);
40}
41function decrypt($key, $iv, $value) {
42        if (is_null($value)) $value = "";
43        $value = base64_decode($value);
44        $output = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $value, MCRYPT_MODE_CBC, $iv);
45        return fromPkcs7($output);
46}
47?>


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

댓글목록

등록된 댓글이 없습니다.

Total 165건 2 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
140 MintState 18928 07-02
139 MintState 16897 06-30
열람중 MintState 23061 04-28
137 MintState 16497 02-12
136 MintState 29255 01-13
135 MintState 17024 10-09
134 MintState 18785 08-25
133 MintState 15843 07-28
132 MintState 19222 04-28
131 MintState 26345 04-09
130 MintState 16655 04-06
129 MintState 13979 02-25
128 MintState 17183 02-25
127 MintState 12903 02-23
126 MintState 12132 02-23
125 MintState 16580 02-23
124 MintState 16935 02-17
123 MintState 15908 02-17
122 MintState 17507 11-17
121 MintState 22887 11-17
120 MintState 12755 11-17
119 MintState 17787 11-17
118 MintState 14370 11-17
117 MintState 16835 11-10
116 MintState 15008 11-10
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2025, Go3.co.kr MintState. ™