대부분의 비밀번호 암호화에는 md5, sha1 및 기타 방법을 사용할 수 있습니다. 데이터 유출을 효과적으로 방지할 수 있지만 이러한 방법은 복원이 필요하지 않은 데이터 암호화에만 적용됩니다.
복원해야 하는 정보에는 가역적인 암호화 및 복호화 알고리즘을 사용해야 합니다.
다음 PHP 함수 세트는 이 암호화 및 복호화를 구현하는 방법입니다.
암호화 알고리즘은 다음과 같습니다.
function encrypt($data, $key) { $key = md5($key); $x = 0; $len = strlen($data); $l = strlen($key); for ($i = 0; $i < $len; $i++) { if ($x == $l) { $x = 0; } $char .= $key{$x}; $x++; } for ($i = 0; $i < $len; $i++) { $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256); } return base64_encode($str); }
복호화 알고리즘은 다음과 같습니다. :
function decrypt($data, $key) { $key = md5($key); $x = 0; $data = base64_decode($data); $len = strlen($data); $l = strlen($key); for ($i = 0; $i < $len; $i++) { if ($x == $l) { $x = 0; } $char .= substr($key, $x, 1); $x++; } for ($i = 0; $i < $len; $i++) { if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) { $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1))); } else { $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1))); } } return $str; }
위의 암호화 및 복호화 프로세스에서는 모두 암호화 키(예: $key 매개변수)를 사용해야 합니다.
$data = 'PHP加密解密算法'; // 被加密信息 $key = '123'; // 密钥 $encrypt = encrypt($data, $key); $decrypt = decrypt($encrypt, $key); echo $encrypt, "\n", $decrypt;
위에서는 다음과 유사한 결과가 출력됩니다.
gniCSOzZG+HnS9zcFea7SefNGhXF
PHP 암호화 및 복호화 알고리즘
위에서 볼 수 있듯이 결과는 되돌릴 수 있는 집합입니다. 암호화 및 암호 해독 알고리즘을 사용하여 복원해야 하는 일부 데이터를 암호화할 수 있습니다.
PHP 가역 암호화 및 복호화 알고리즘 예제 코드 세트와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!