php
PHP - base64_encode 함수
string base64_encode ( string $data )
(PHP 4, PHP 5)
이 함수는 모든 정보를 64개 문자로 구성된 64진수로 바꾸는 것으로 a-z, A-Z, 0-9, +, / 의 문자이며, 암호화 방식과는 거리가 멀고, 원 데이터보다 약 33% 더 많은 공간을 필요로 합니다.
64개 문자는 =가 포함한 문자인데, =는 단순히 4자리 수를 맞춰 줄 빈 공간을 채우는 의미 없는 문자이므로 신경쓰지 않아도 됩니다.
이 인코딩은 메일 본문처럼 8비트를 사용할 수 없는 전송 층에서 바이너리 데이터를 안전하게 전송하도록 설계되었습니다.
다만, GET이나 REQUEST로 전송시 +, / 문자가 문제시 되므로 urlencode 로 데이터를 보호하거나 다음과 같이 치환해서 데이터를 보호해줄 필요가 있습니다.
(PHP 4, PHP 5)
이 함수는 모든 정보를 64개 문자로 구성된 64진수로 바꾸는 것으로 a-z, A-Z, 0-9, +, / 의 문자이며, 암호화 방식과는 거리가 멀고, 원 데이터보다 약 33% 더 많은 공간을 필요로 합니다.
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
// 결과: VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==
?>
64개 문자는 =가 포함한 문자인데, =는 단순히 4자리 수를 맞춰 줄 빈 공간을 채우는 의미 없는 문자이므로 신경쓰지 않아도 됩니다.
이 인코딩은 메일 본문처럼 8비트를 사용할 수 없는 전송 층에서 바이너리 데이터를 안전하게 전송하도록 설계되었습니다.
다만, GET이나 REQUEST로 전송시 +, / 문자가 문제시 되므로 urlencode 로 데이터를 보호하거나 다음과 같이 치환해서 데이터를 보호해줄 필요가 있습니다.
<?php
function base64encode($string) {
$data = str_replace(array('+','/','='),array('-','_',''),base64_encode($string));
return $data;
}
function base64decode($string) {
$data = str_replace(array('-','_'),array('+','/'),$string);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}
$string = '1234567890가나다라마바사';
$data = base64encode($string);
echo $data; // 결과: MTIzNDU2Nzg5MLChs6q02bbzuLa52bvn
echo '<br />';
echo base64decode($data); // 결과: 1234567890가나다라마바사
?>
0 댓글