PHP로 구현된 aes 암호화 클래스

怪我咯
풀어 주다: 2023-03-13 19:48:01
원래의
2681명이 탐색했습니다.

암호학에서의 Rijndael 암호화 방식이라고도 알려진 Advanced Encryption Standard(영어: Advanced Encryption Standard, 약어: AES)는 미국 연방 정부에서 채택한 블록 암호화 표준입니다. 이 표준은 원래 DES를 대체하는 데 사용되었으며 많은 당사자에서 분석되었으며 전 세계적으로 널리 사용됩니다. 5년간의 선택 과정을 거친 후 NIST(국립 표준 기술 연구소)에서 2001년 11월 26일 FIPS PUB 197에 고급 암호화 표준을 게시했으며 2002년 5월 26일에 유효한 표준이 되었습니다. 2006년에 Advanced Encryption Standard는 대칭 키 암호화를 위한 가장 널리 사용되는 알고리즘 중 하나가 되었습니다. 이번 글에서는 주로 PHP에서 구현된 AES 암호화 클래스를 소개합니다. 코드에 사용법이 있으니 필요한 분들은 참고하세요

<?php
class AESMcrypt {

 public $iv = null;
 public $key = null;
 public $bit = 128;
 private $cipher;

 public function construct($bit, $key, $iv, $mode) {
  if(empty($bit) || empty($key) || empty($iv) || empty($mode))
  return NULL;

  $this->bit = $bit;
  $this->key = $key;
  $this->iv = $iv;
  $this->mode = $mode;

  switch($this->bit) {
   case 192:$this->cipher = MCRYPT_RIJNDAEL_192; break;
   case 256:$this->cipher = MCRYPT_RIJNDAEL_256; break;
   default: $this->cipher = MCRYPT_RIJNDAEL_128;
  }

  switch($this->mode) {
   case &#39;ecb&#39;:$this->mode = MCRYPT_MODE_ECB; break;
   case &#39;cfb&#39;:$this->mode = MCRYPT_MODE_CFB; break;
   case &#39;ofb&#39;:$this->mode = MCRYPT_MODE_OFB; break;
   case &#39;nofb&#39;:$this->mode = MCRYPT_MODE_NOFB; break;
   default: $this->mode = MCRYPT_MODE_CBC;
  }
 }

 public function encrypt($data) {
  $data = base64_encode(mcrypt_encrypt( $this->cipher, $this->key, $data, $this->mode, $this->iv));
  return $data;
 }

 public function decrypt($data) {
  $data = mcrypt_decrypt( $this->cipher, $this->key, base64_decode($data), $this->mode, $this->iv);
  $data = rtrim(rtrim($data), "\x00..\x1F");
  return $data;
 }

}
//使用方法
$aes = new AESMcrypt($bit = 128, $key = &#39;abcdef1234567890&#39;, $iv = &#39;0987654321fedcba&#39;, $mode = &#39;cbc&#39;);
$c = $aes->encrypt(&#39;haowei.me&#39;);
var_dump($aes->decrypt($c));
로그인 후 복사
.

위 내용은 PHP로 구현된 aes 암호화 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿