본문으로 바로가기

[PHP] 암호화 / 복호화 함수

category Helloworld!/PHP 2013. 3. 8. 15:13

이메일 인증 때문에 회사 홈페이지 수정 중. 어쩔수 없이 movepage로 페이지 이동을 해야하는데

파라미터값을 넘겨야하는 상황이 발생.

그렇게 중요한 값은 아니지만 대놓고 URL에 파라미터값을 보여주기엔 민망해서 암호화해서 파라미터를 넘긴 후

복호화해서 사용하는 방식을 찾다가 다음 함수를 알게되었다.

테스트해서 사용은 두개밖에 안해봤지만 다양한 종류가있으니 참고사이트 URL을 확인하시길.


urlencode() / urldecode()

- 하나의 특수문자, 한글, multi-byte 문자를 %XX형식으로 변환한다.

- 단점 : 길이가 좀 길어진다

           [0-9a-zA-Z] 등은 endcode하지 않아 그대로 보인다

- 보안성이 없거나 크게 요구되지않는 경우 사용. URL GET방식으로 어떤 값을 넘길때 많이 사용

- 사용방법은 다음과 같다.

$email = "test@test.com";
$encode = urlencode($email); //email이라는 변수가 암호화됨
$decode = urldecode($encode); //암호화된 encode변수를 복호화시킴


base64_encode() / base64_decode()

- 변환된 문자는 [0-9a-zA-Z+/=] 문자들로 수겅되어있으며 역시 길이가 약간 길어짐

- 장점 : 쉽게 눈으로 판독할 수 없음

- 저수준의 보안성이 요구 될때 사용하는 경우 많음

- URL GET방식으로 어떤 값을 넘길때도 사용되지만 약간의 문제가 있음.

- 사용방법은 urlencodeurldecod랑 같다.


참고사이트 : http://blog.naver.com/zero3625?Redirect=Log&logNo=40015895794


+) md5()

암호화만 하는 함수이다. 검색해보니 대부분 비밀번호를 암호화하여 넘길때 사용하는거같다.
그래서 복호화하는 함수가 따로있진않다. (시간에 따라 암호화되는게 달라서 복호화가 힘들다고 한다.)

- 사용방법은 다음과 같다.

$password = "1234"
$pw_encode = md($password);