aes解密php
❶ 前端使用CryptoJS AES加密 ,後端php解密問題
PHP7.1 已經不能用mcrypt了,所以我用的是openssl_encrypt和openssl_decrypt。
<?php
$data="ThisisanAEScryptdemo.";
$privateKey="";//KEY16位元組用aes-128-cbc,32位元組用aes-256-cbc
$iv="4490d2ded4f2d4ad";//AES的IV是16個位元組
//加密
//$encrypted=openssl_encrypt($data,'aes-128-cbc',$privateKey,0,$iv);
$encrypted=openssl_encrypt($data,'aes-256-cbc',$privateKey,0,$iv);
echo$encrypted,PHP_EOL;
//解密
$encryptedData=$encrypted;
//$decrypted=openssl_decrypt($encryptedData,'aes-128-cbc',$privateKey,0,$iv);
$decrypted=openssl_decrypt($encryptedData,'aes-256-cbc',$privateKey,0,$iv);
echo($decrypted);
輸出結果如下:
EPcMQRXA53/hRkPyILFI4fF/9sW2X53tLiDT26khNsA=
ThisisanAEScryptdemo.
❷ java aes加密 如何用php 進行解密,以下是java代碼,求php 代碼如何寫 (主要是createkey 那個方法)
先看用什麼方式的加密,拿AES來說,你需要問java要到混淆值、初始化向量與AES加密的方式如AES-192-CFB.然後直接調用openssl_decrypt方法進行解密.
openssl_decrypt('需要解密的字元串','AES-192-CFB','混淆值',0,'初始化向量'),true)
❸ PHP如何實現AES加解密
php載入Mcrypt組件php_mycrypt.dll/.so,支持AES和3DES編碼,
只是該模塊沒有提供補齊padding方法,要自己用PHP代碼寫PKCS7之類的補齊方法
❹ php中aes加密和rsa加密的區別
這個跟php沒有關系,單純的是兩個密碼學的演算法。如果真想搞清楚區別,你需要有密碼學的基礎知識。
我簡單說一下,這兩個都是標準的密碼學演算法,應用廣泛。AES是一個對稱加密演算法,常常用於對數據進行加密,RSA是一個非對稱(公鑰)加密演算法,常常用於對AES加密用的密鑰進行加密,或者進行數字簽名等。
至於對稱加密演算法和非對稱加密演算法的區別說起來就越來越多了。你只要知道以下事實就好:
對稱加密演算法加解密密鑰相同,而非對稱加密演算法加解密密鑰不同
對稱加密演算法相對於非對稱加密演算法而言往往加解密速度很快
非對稱加密演算法具有任何有公鑰的人都能加密數據,但是只有有私鑰的人才能解密數據的特點
❺ iOS傳過來的AES加密數據PHP怎麼解密
使用PHP解密數據就可以了,代碼參考
1、使用mcrypt擴展方式實現:http://www.oschina.net/code/snippet_248412_15378
加密解密代碼中都有例子了
2、純PHP實現:http://www.oschina.net/code/snippet_222150_15575
加密函數:AESEncryptCtr()
解密函數:AESDecryptCtr()
❻ 易語言怎麼解密php的aes後的數據
前言在數據的江湖中,一直隱藏著兩股「勢不兩立」的「暗涌」—加密與解密,沒有人知道這兩股力量從何時開始到何時結束。貌似扯遠了,回歸主題—易語言如何解密數據,帶著種種謎團和MovieClip進入神秘的解密世界吧!
❼ php AES加密 openssl解密失敗,幫忙看下代碼哪裡有問題
用Zend的加密吧,但是還是可以解密的,這也沒法,凡是對稱加密或非不可逆的加密演算法,均可以解密,這只是時間問題。特別是沒有密碼的加密(不可逆除外)。可以這樣,使用AES加密,再用GZIP壓縮,然後運行時解密,在eval那些代碼。前提是每
❽ 為什麼OPENSSL在C++/PHP下AES加密解密結果不一致
結果應該是一樣的,你查看下是多少位加密 128位和256位肯定是不一樣的。
其次 看看 AES_KEY 是否一致,仔細比較下兩者的 key和iv,如果這兩個不一樣,那麼結果肯定不一樣。尤其是iv,PHP封裝的是否默認有了個iv。
你要比較AES_KEY 的key和iv中每個char,不僅僅是輸出的字元串。不能應為有\0字元串的結尾標志而忽略。
如果這些一致,加密加過肯定是一致的。
❾ 如何用php做AES加密解密,編碼是UTF-8,跪謝求代碼
class CryptAES
{
protected $cipher = MCRYPT_RIJNDAEL_128;
protected $mode = MCRYPT_MODE_ECB;
protected $pad_method = NULL;
protected $secret_key = '';
protected $iv = '';
public function set_cipher($cipher)
{
$this->cipher = $cipher;
}
public function set_mode($mode)
{
$this->mode = $mode;
}
public function set_iv($iv)
{
$this->iv = $iv;
}
public function set_key($key)
{
$this->secret_key = $key;
}
public function require_pkcs5()
{
$this->pad_method = 'pkcs5';
}
protected function pad_or_unpad($str, $ext)
{
if ( is_null($this->pad_method) )
{
return $str;
}
else
{
$func_name = __CLASS__ . '::' . $this->pad_method . '_' . $ext . 'pad';
if ( is_callable($func_name) )
{
$size = mcrypt_get_block_size($this->cipher, $this->mode);
return call_user_func($func_name, $str, $size);
}
}
return $str;
}
protected function pad($str)
{
return $this->pad_or_unpad($str, '');
}
protected function unpad($str)
{
return $this->pad_or_unpad($str, 'un');
}
public function encrypt($str)
{
$str = $this->pad($str);
$td = mcrypt_mole_open($this->cipher, '', $this->mode, '');
if ( empty($this->iv) )
{
$iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
}
else
{
$iv = $this->iv;
}
mcrypt_generic_init($td, $this->secret_key, $iv);
$cyper_text = mcrypt_generic($td, $str);
$rt=base64_encode($cyper_text);
//$rt = bin2hex($cyper_text);
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
return $rt;
}
public function decrypt($str){
$td = mcrypt_mole_open($this->cipher, '', $this->mode, '');
if ( empty($this->iv) )
{
$iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
}
else
{
$iv = $this->iv;
}
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_mole_close($td);
return $this->unpad($rt);
}
public static function hex2bin($hexdata) {
$bindata = '';
$length = strlen($hexdata);
for ($i=0; $i< $length; $i += 2)
{
$bindata .= chr(hexdec(substr($hexdata, $i, 2)));
}
return $bindata;
}
public static function pkcs5_pad($text, $blocksize)
{
$pad = $blocksize - (@strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
public static function pkcs5_unpad($text)
{
$pad = ord($text{strlen($text) - 1});
if ($pad > strlen($text)) return false;
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false;
return substr($text, 0, -1 * $pad);
}
}
/*$keyStr = 'UITN25LMUQC436IM';
$plainText = 'this is a string will be AES_Encrypt';
$aes = new CryptAES();
$aes->set_key($keyStr);
$aes->require_pkcs5();
$encText = $aes->encrypt($plainText);
$decString = $aes->decrypt($encText);
echo $encText,"n",$decString;*/