>  기사  >  백엔드 개발  >  표준 PHP AES 암호화 알고리즘 class_php 기술

표준 PHP AES 암호화 알고리즘 class_php 기술

WBOY
WBOY원래의
2016-05-16 20:21:251136검색

mcrypt_get_block_size('rijndael-128', 'ecb');를 포함한 표준 PHP AES 암호화 알고리즘 클래스를 공유합니다. 원리를 이해하지 못하고 실수하기 쉽다면 mcrypt_list_algorithms를 통해 필요한 암호화를 확인할 수 있습니다. 함수. 알고리즘 ID입니다.

코드 복사 코드는 다음과 같습니다.

/**
* AES128 암호화 및 복호화 클래스
* @author dy
*
​*/
정의됨('InEjbuy') 또는 종료('액세스가 잘못되었습니다!');
클래스 Aes{
//키
비공개 $_secret_key;
공개 함수 __construct(){
           $this->_secret_key = 'MYgGnQE2jDFADSFFDSEWsdD';
}
/**
* 암호화 방법
* @param 문자열 $str
* @return 문자열
​​*/
공개 함수 암호화($str){
​​​​ //AES, 128 ECB 모드 암호화된 데이터
$scect_key = $this->_secret_key;
          $scect_key = base64_decode($scect_key);
          $str = 트림($str);
$str = $this->addPKCS7Padding($str);
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND);
         $encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $scret_key, $str, MCRYPT_MODE_ECB, $iv);
          return base64_encode($encrypt_str);
}
/**
* 복호화 방법
* @param 문자열 $str
* @return 문자열
​​*/
공개 함수 해독($str){
​​​​ //AES, 128 ECB 모드로 암호화된 데이터
$scect_key = $this->_secret_key;
          $str = base64_decode($str);
          $scect_key = base64_decode($scect_key);
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND);
         $encrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $scret_key, $str, MCRYPT_MODE_ECB, $iv);
​​​​ $encrypt_str = 트림($encrypt_str);
$encrypt_str = $this->stripPKSC7Padding($encrypt_str);
          $encrypt_str 반환
}
/**
* 채우기 알고리즘
* @param 문자열 $source
* @return 문자열
​​*/
함수 addPKCS7Padding($source){
          $source = 트림($source);
         $block = mcrypt_get_block_size('rijndael-128', 'ecb');
$pad = $block - (strlen($source) % $block);
If ($pad <= $block) {
               $char = chr($pad);
                $source .= str_repeat($char, $pad);
}
         $source 반환;
}
/**
* * 패딩 알고리즘 제거
* @param 문자열 $source
* @return 문자열
​​*/
함수 StripPKSC7Padding($source){
          $source = 트림($source);
          $char = substr($source, -1);
          $num = ord($char);
If($num==62)return $source;
          $source = substr($source,0,-$num);
         $source 반환;
}
}

위 내용은 이 글에 설명된 내용의 전부입니다. PHP의 AES 암호화 알고리즘 클래스를 배우시는 모든 분들께 도움이 되었으면 좋겠습니다.

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