我有這樣的代碼PHP加密空字符串
define('CRYPTKEY','rx4/YK51nJo7LuRnZAz/jpXZbCunkNplneL6ugkBs5g=');
define('CRYPTALGO','aes-256-cbc');
public function crypt($text){
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encryption_key = base64_decode(CRYPTKEY);
$cryptedid = openssl_encrypt ($newid,CRYPTALGO,$encryption_key,0,$iv);
return base64_encode($cryptedid.'::'.$iv);
}
public function decrypt($text){
$encryption_key = base64_decode(CRYPTKEY);
list($encrypted_data, $iv) = explode('::', base64_decode($text), 2);
return openssl_decrypt($encrypted_data,CRYPTALGO,$encryption_key,0,$iv);
}
CRYPTKEY創建這樣的:
base64_encode(openssl_random_pseudo_bytes(32));
,但我一直有一個空字符串作爲解碼文本....
有人可以幫我弄清楚爲什麼?
你爲什麼不直接寫明文作爲純文本?這種不安全加密的目的是什麼? –
@AnttiHaapala我傳遞了加密的id來混淆數據庫中添加敏感數據的行的id。 如果您無法訪問服務器,請通過向我發送腳本來破解此算法,與我分享此腳本的「不安全」。 – Juanse