>  기사  >  백엔드 개발  >  PHP는 사용자 정의 키를 어떻게 사용하여 데이터를 암호화하고 해독합니까?

PHP는 사용자 정의 키를 어떻게 사용하여 데이터를 암호화하고 해독합니까?

小云云
小云云원래의
2017-12-11 09:55:132530검색

클라이언트와 서버가 통신할 때 ID가 URL 매개변수로 앞뒤로 전달되는 매우 일반적인 시나리오가 있습니다. 현재 비즈니스에 이 ID 식별자만 있다고 가정하면 이 ID를 암호화하여 전송한 다음 서버에 암호를 해독하려면 약간 더 안전한 통신이 필요합니다. 여기에는 서버에 의해 비밀로 유지되는 키가 필요하며 이 키는 암호화 및 암호 해독에 사용됩니다. 이 기사에서는 주로 PHP가 사용자 정의 키를 사용하여 데이터를 암호화하고 해독하는 방법을 소개합니다. 여기에는 문자열 변환, 가로채기 및 기타 작업을 위한 암호화 및 해독 기능을 구현하는 PHP의 기술이 포함되어 있어 모든 사람에게 도움이 되기를 바랍니다.

암호화 및 복호화 방법은 다음과 같습니다. $str은 암호화 및 복호화가 필요한 문자열이고, $key는 직접 정의한 키입니다.

// 加密
function encryptStr($str, $key){
  $block = mcrypt_get_block_size('des', 'ecb');
  $pad = $block - (strlen($str) % $block);
  $str .= str_repeat(chr($pad), $pad);
  $enc_str = mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
  return base64_encode($enc_str);
}
// 解密
function decryptStr($str, $key){
  $str = base64_decode($str);
  $str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
  $block = mcrypt_get_block_size('des', 'ecb');
  $pad = ord($str[($len = strlen($str)) - 1]);
  return substr($str, 0, strlen($str) - $pad);
}

이것을 적용할 경우:

URL 시나리오의 ID에 암호화 후 base64로 인코딩되므로 + 기호의 영향을 제거하려면 다시 다운로드하는 것이 좋습니다. urlencode()

관련 권장 사항:


PHP 문자열 암호화 및 암호 해독 구현 프로세스 공유

암호화 및 암호 해독에 대한 mysql 함수

PHP 암호화 및 암호 해독의 여러 방법에 대한 사용 튜토리얼

위 내용은 PHP는 사용자 정의 키를 어떻게 사용하여 데이터를 암호화하고 해독합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.