AES加密完整類(PHP)

2021-08-21 15:22:44 字數 1845 閱讀 4306

/**

* aes 加密類

* class cryptaes

*/class cryptaes

public function set_mode($mode)

public function set_iv($iv)

public function set_key($key)

public function require_pkcs5()

protected function pad_or_unpad($str, $ext)

else

}return $str;

}protected function pad($str)

protected function unpad($str)

public function encrypt($str) else

mcrypt_generic_init($td, $this->secret_key, $iv);

$cyper_text = mcrypt_generic($td, $str);

$rt=base64_encode($cyper_text);

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

return $rt;}

public function decrypt($str)

else

mcrypt_generic_init($td, $this->secret_key, $iv);

//$decrypted_text = mdecrypt_generic($td, self::hex2bin($str));

$decrypted_text = mdecrypt_generic($td, base64_decode($str));

$rt = $decrypted_text;

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

return $this->unpad($rt);

}public static function hex2bin($hexdata)

return $bindata;

}public static function pkcs5_pad($text, $blocksize)

public static function pkcs5_unpad($text)

);if ($pad > strlen($text)) return false;

if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false;

return substr($text, 0, -1 * $pad);}}

$aes = new cryptaes();

$key = 'esca4646asd3a243';

$aes->set_key($key);

$aes->require_pkcs5();

$data = '123456'

資料在url中傳遞時一定要注意特殊字元的替換,否則可能會導致傳遞資料不正確。

+url 中+號表示空格

%2b空格

url中的空格可以用+號或者編碼

%20/

分隔目錄和子目錄

%2f?

分隔實際的url和引數

%3f%

指定特殊字元

%25#

表示書籤

%23&

url 中指定的引數間的分隔符

%26=

url 中指定引數的值

%3d

PHP的AES加密演算法完整例項

function encrypt str function decrypt code for pkcs7 padding private function addpadding string,blocksize 16 private function strippadding string stri...

JS實現AES加密並與PHP互通

有關資料加密解密問題,有很多鐘加密方式 這裡我講述下js和php實現aes互通 js加密 首先引入這幾個js檔案 在實際用的時候和php傳輸中,js加密後的字串裡面的 被瀏覽器解析成了空格 然後php解密的時候出錯 這裡可以對加密之後的字串做進一步處理encrypted encodeuricompo...

php加密方式 AES 128 ECB

rsa簽名排列,按鍵值字母排序 public function encryptrsastr param aes加密排列,按鍵值字母排序 function encryptaesstr param aes 128 ecb加密 function aes encrypt data,key aes 128 e...