>  기사  >  백엔드 개발  >  PHP가 사용자 정의 키를 사용하여 데이터를 암호화하고 해독하는 방법에 대한 설명

PHP가 사용자 정의 키를 사용하여 데이터를 암호화하고 해독하는 방법에 대한 설명

jacklove
jacklove원래의
2018-07-06 17:45:212675검색

이 글에서는 주로 PHP가 사용자 정의 키를 사용하여 데이터를 암호화하고 복호화하는 방법을 소개합니다. 여기에는 문자열을 변환하고 가로채서 암호화 및 복호화 기능을 구현하는 PHP 관련 기술이 포함됩니다.#🎜 🎜##🎜 🎜#이 문서의 예에서는 PHP가 사용자 정의 키를 사용하여 데이터를 암호화하고 해독하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

클라이언트와 서버가 통신할 때 ID가 URL 매개변수로 앞뒤로 전달되는 매우 일반적인 시나리오가 있습니다. 현재 비즈니스에 이 ID 식별자만 있다고 가정하면 이 ID를 암호화하여 전송한 다음 서버에 암호를 해독하려면 약간 더 안전한 통신이 필요합니다. 여기에는 서버 측 비밀 키가 필요하며, 이 키는 암호화 및 복호화에 사용됩니다.

암호화 및 복호화 방법은 다음과 같습니다. $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()

PS: 암호화 및 암호 해독에 관심이 있는 친구는 이 사이트의 온라인 도구를 참조할 수도 있습니다:

# 🎜🎜## 🎜🎜# 텍스트 온라인 암호화 및 암호 해독 도구(AES, DES, RC4 등 포함):

http://tools.jb51.net/password/txt_encode

#🎜🎜 #
MD5 온라인 암호화 도구:

http://tools.jb51.net/password/CreateMD5Password

#🎜🎜 #온라인 해시/해시 알고리즘 암호화 도구:
http://tools.jb51.net/password/hash_encrypt# 🎜🎜##🎜 🎜#

온라인 MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160 암호화 도구: # 🎜🎜#http://tools.jb51.net/password/hash_md5_sha

온라인 sha1/sha224/sha256/sha384/sha512 암호화 도구:

# 🎜🎜#http://tools.jb51.net/password/sha_encode
당신이 관심을 가질 만한 기사: #🎜 🎜##🎜🎜 #

PHP에서 구현된 간단한 사칙연산 계산기 기능에 대한 설명 예


Unfixed 구현 방법에 대한 관련 설명 Laravel 라우팅의 매개변수 수# 🎜🎜#

Laravel 프레임워크 블레이드 템플릿 초보자 튜토리얼

#🎜 🎜##🎜🎜 #

위 내용은 PHP가 사용자 정의 키를 사용하여 데이터를 암호화하고 해독하는 방법에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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