加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP安全之对称密钥ACE加密解密类

发布时间:2020-12-13 02:00:11 所属栏目:PHP教程 来源:网络整理
导读:《PHP安全之对称密钥ACE加密解密类》要点: 本文介绍了PHP安全之对称密钥ACE加密解密类,希望对您有用。如果有疑问,可以联系我们。 相关主题:PHP开发/PHP安全 AES密钥是什么 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是目前 对称

《PHP安全之对称密钥ACE加密解密类》要点:
本文介绍了PHP安全之对称密钥ACE加密解密类,希望对您有用。如果有疑问,可以联系我们。

相关主题:PHP开发 / PHP安全

AES密钥是什么

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是目前对称密钥加密中比较通用的一种加密方式。

AES密钥有什么用

支付宝开放平台所有OpenAPI均支持对接口的请求内容和响应内容进行AES加密。加密后,在网络上传输的接口报文内容将会由明文内容变为密文内容,可以大大提升接口内容传输的安全性。

AES密钥与RSA密钥的关系

  • AES密钥是对接口请求和响应内容进行加密,密文无法被第三方识别,从而防止接口传输数据泄露。

  • RSA密钥是对接口请求和响应内容进行签名,开发者和支付宝开放平台分别加签验签,以确认接口传输的内容没有被篡改。不论接口内容是明文还是密文,RSA均可正常签名。

  • 开发者可对请求参数先做AES加密,然后对密文进行RSA签名。


//php aes加密类
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;
              } // www.jbxue.com

              switch($this->mode) {
                     case 'ecb':$this->mode = MCRYPT_MODE_ECB; break;
                     case 'cfb':$this->mode = MCRYPT_MODE_CFB; break;
                     case 'ofb':$this->mode = MCRYPT_MODE_OFB; break;
                     case 'nofb':$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, base64_decode($data), $this->iv);
              $data = rtrim(rtrim($data), "x00..x1F");
              return $data;
       }

}


ACE加密解密使用方法

//使用方法
$aes = new AESMcrypt($bit = 128, $key = 'vephp', $iv = '52php.cn', $mode = 'cbc');
$c = $aes->encrypt('www.52php.cn');
var_dump($aes->decrypt($c));
echo '<br />';
echo $c;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读