中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php的mcrypt擴展已廢棄問題解決

發布時間:2020-07-22 09:39:05 來源:網絡 閱讀:637 作者:china_lx1 欄目:開發技術

php 的 mcrypt_ 函數簇在 7.1.0 版本中開始 deprecated,并在 7.2.0 版本中徹底廢棄。如果當前項目存在mcrypt_ encrypt這種函數又想更新php到最新版本


官方推薦使用openssl_encrypt/openssl_decrypt替代mcrypt_encryptmcrypt_decrypt


MCRYPT_RIJNDAEL_256 并不是 AES-256,如果想使用 mcrypt_簇 實現 AES-256,則你應該使用 MCRYPT_RIJNDAEL_128 算法 + 32位的 key,openssl_簇 則更為清晰的明確了各種模式。這里我整理了一下對應關系供大家參考:

MCRYPT_RIJNDAEL_128?&?CBC?+?16位Key?=?openssl_encrypt(AES-128-CBC,?16位Key)?=?AES-128
MCRYPT_RIJNDAEL_128?&?CBC?+?24位Key?=?openssl_encrypt(AES-192-CBC,?24位Key)?=?AES-192
MCRYPT_RIJNDAEL_128?&?CBC?+?32位Key?=?openssl_encrypt(AES-256-CBC,?32位Key)?=?AES-256


我們這里寫個例子


mcrypt代碼:

<?php

$key?=?'keykeykey';

//注意這里我使用的32位的key
$key?=?md5(md5($key)?.?'salt');

$iv?=?md5($key,?true);

$data?=?'asdfgh';

$encode?=?mcrypt_encrypt(MCRYPT_RIJNDAEL_128,?$key,?$data,?MCRYPT_MODE_CFB,?$iv);

$encode?=?base64_encode($encode);

echo?$encode?.?PHP_EOL;

//處理解密

$decode?=?mcrypt_decrypt(MCRYPT_RIJNDAEL_128,?$key,?base64_decode($encode),?MCRYPT_MODE_CFB,?$iv);

echo?$decode;

echo?PHP_EOL;


openssl代碼

$key?=?'keykeykey';
$key?=?md5(md5($key)?.?'salt');
$iv?=?md5($key,?true);

$data?=?'asdfgh';

$encode?=?openssl_encrypt($data,?'aes-256-cfb',?$key,?OPENSSL_RAW_DATA,?$iv);

//完美替換$encode?=?mcrypt_encrypt(MCRYPT_RIJNDAEL_128,?$key,?$data,?MCRYPT_MODE_CFB,?$iv);

$encode?=?base64_encode($encode);

echo?$encode?.?'<br>';

//解密

$decode?=?openssl_decrypt(base64_decode($encode),?'aes-256-cfb',?$key,?OPENSSL_RAW_DATA,?$iv);

echo?$decode;


重點是openssl這里,我使用的是aes-256-cfb(因為mcrypt那里使用的是32位的key,如果是16位的key請參考上面對應關系)



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲城县| 扬中市| 宁武县| 渑池县| 宜州市| 天台县| 玛多县| 九江市| 丽江市| 武冈市| 苗栗县| 淮南市| 乡城县| 斗六市| 古交市| 新巴尔虎左旗| 永丰县| 中宁县| 阜新市| 溆浦县| 灵台县| 麦盖提县| 涞水县| 元氏县| 山阴县| 行唐县| 三江| 云林县| 平果县| 浦江县| 龙泉市| 台东县| 平度市| 嘉义市| 慈溪市| 加查县| 孝感市| 西青区| 石狮市| 砚山县| 股票|