PHP長明文對稱加密 PHP AES對稱加密演算法

2021-10-13 15:00:29 字數 1952 閱讀 1808

利用php加密庫 mcrypt 進行aes加密解密//aes加密類class aesmcrypt        $this->bit = $bit;       $this->key = $key;       $this->iv = $iv;       $this->mode = $mode;       switch($this->bit)    public function encrypt($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;

在thinkphp3.2中的使用方法

把加密類放在第三方類庫目錄中

image.png

在公共函式中呼叫/**

* aes加密

* @param  [string] $str 要加密的字串

* @return [string] $str 加密後的字串

*/function encrypt($str){

vendor('aes.aesmcrypt');

$config = c('aes');

$bit = $config['bit'];

$key = $config['key'];

$iv = $config['iv'];

$mode = $config['mode'];

$aes = new aesmcrypt($bit, $key, $iv,$mode);

$str = $aes->encrypt($str);    return $str;

* aes解密

* @param  [string] $str 要解密的字串

* @return [string] $str 解密後的字串

*/function decrypt($str){

vendor('aes.aesmcrypt');

$config = c('aes');//config中的配置

$bit = $config['bit'];

$key = $config['key'];

$iv = $config['iv'];

$mode = $config['mode'];

$aes = new aesmcrypt($bit, $key, $iv,$mode);

$str = $aes->decrypt($str);    return $str;

config配置檔案//注意cbc模式key和iv必須是長度為16的字串'aes' => array(        'bit' => 128,        'key' => 'woshiwangjiewang',//加解密key

'iv' => 'wangjieshiwowang',//秘鑰向量

'mode' => 'cbc',//加密模式

接下來就可以在thinkphp中的直接呼叫encrypt()和decrypt()傳入字串進行加密解密了。encrypt('我是王傑');

加密後// wlnz+cbklkoi40bd8r4e/q==decrypt('wlnz+cbklkoi40bd8r4e/q==');

解密後我是王傑

可以用下面的**來檢測系統是否安裝了 mcrypt 模組,並檢視支援哪些加密演算法和模式$cipher_list = mcrypt_list_algorithms();//mcrypt支援的加密演算法列表$mode_list = mcrypt_list_modes(); //mcrypt支援的加密模式列表var_dump($cipher_list);

var_dump($mode_list);

我當前的php支援一下演算法和模式

image.png

PHP長明文對稱加密 PHP實現對稱加密

以下是封裝的乙個類 xcrypt.php 常用對稱加密演算法類 支援金鑰 64 128 256 bit 位元組長度8 16 32 支援演算法 des aes 根據金鑰長度自動匹配使用 des 64bit aes 128 256bit 支援模式 cbc ecb ofb cfb 密文編碼 base64字...

PHP長明文對稱加密 PHP實現對稱加密與解密

這篇文章主要介紹了php實現的簡單對稱加密與解密方法,結合例項形式總結了常見的php對稱加密與解密操作方法,需要的朋友可以參考下 方法一 yii自帶的加密方法 加密 var string 要加密的值 secretkey wwj data res u id 解密 var type 加密前的值 aid ...

php 對稱加密

這次我給大家介紹一下 對稱加密 對稱加密 有乙個公共的金鑰 我們這次使用 base64 encode 和 base64 decode 進行操作 乙個 加密 乙個 解密 這兩個函式的使用方法如下 function jia info 加密的串 token 加密的金鑰 token function jie...