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

2021-10-16 18:25:36 字數 2526 閱讀 6752

這篇文章主要介紹了php實現的簡單對稱加密與解密方法,結合例項形式總結了常見的php對稱加密與解密操作方法,需要的朋友可以參考下

方法一:yii自帶的加密方法

* 加密

* @var string [要加密的值]

$secretkey = "wwj";

$data = $res['u_id'];

* 解密

* @var [type] [加密前的值]

$aid = $req->get('uid');

$secretkey = "wwj";

方法二:

* 安全url編碼

* @param type $data

* @return type

function encode($data) {

return str_replace(array('+', '/', '='), array('-', '_', ''), base64_encode(serialize($data)));

* 安全url解碼

* @param type $string

* @return type

function decode($string) {

$data = str_replace(array('-', '_'), array('+', '/'), $string);

$mod4 = strlen($data) % 4;

($mod4) && $data .= substr('====', $mod4);

return unserialize(base64_decode($data));

方法三:

* 加密

* @param [type] $code [description]

* @return [type] [description]

public static function encrypt($code)

return urlencode(base64_encode(mcrypt_encrypt(mcrypt_rijndael_256, md5("key"), $code, mcrypt_mode_ecb, mcrypt_create_iv(mcrypt_get_iv_size(mcrypt_rijndael_256, mcrypt_mode_ecb), mcrypt_rand))));

* 解密

* @param [type] $code [description]

* @return [type] [description]

public static function decrypt($code)

return urldecode(mcrypt_decrypt(mcrypt_rijndael_256, md5("key"), base64_decode($code), mcrypt_mode_ecb, mcrypt_create_iv(mcrypt_get_iv_size(mcrypt_rijndael_256, mcrypt_mode_ecb), mcrypt_rand)));

方法四:

* 簡單對稱加密

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

* @param string $skey [加密的key]

* @return [type] [加密後]

function encode($string = '', $skey = 'cxphp')

$strarr = str_split(base64_encode($string));

$strcount = count($strarr);

foreach (str_split($skey) as $key => $value)

$key < $strcount && $strarr[$key].=$value;

return str_replace(array('=', '+', '/'), array('o0o0o', 'o000o', 'oo00o'), join('', $strarr));

* 簡單對稱解密

* @param string $string [加密後的值]

* @param string $skey [加密的key]

* @return [type] [加密前的字串]

function decode($string = '', $skey = 'cxphp')

$strarr = str_split(str_replace(array('o0o0o', 'o000o', 'oo00o'), array('=', '+', '/'), $string), 2);

$strcount = count($strarr);

foreach (str_split($skey) as $key => $value)

$key <= $strcount && isset($strarr[$key]) && $strarr[$key][1] === $value && $strarr[$key] = $strarr[$key][0];

return base64_decode(join('', $strarr));

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 AES對稱加密演算法

利用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 publi...

php實現非對稱加密

使用非對稱加密主要是借助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。1.安裝openssl和 php 的openssl擴充套件 2.生成私鑰 openssl genrsa 用於生成 rsa私鑰檔案,生成是可以指定私鑰長度和密碼保護 python view plain cop...