久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

PHP如何使用Mcrypt加密

本篇文章給大家介紹一下PHP使用Mcrypt加密的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

PHP如何使用Mcrypt加密

模塊和算法

Mcrypt 主要是使用的 Mcrypt 工具來進(jìn)行加密操作的,所以在 CentOS 或者其它操作系統(tǒng)中,我們需要安裝 libmcrypt-devel 來使用這個擴(kuò)展。如果 yum 中無法安裝的話,直接更新 yum 源即可。

Mcrypt 包含很多的模塊和算法。算法就不用多解釋了,就是用來對數(shù)據(jù)進(jìn)行加密的方式。而模塊,包括 CBC, OFB,CFB 和 ECB 這幾種,是一系列的分組、流式加密的模式,有推薦的模塊,也有安全的模塊,具體的區(qū)分大家可以自行查閱相關(guān)的資料,這里我們先看一下我們的環(huán)境中所支持的模塊和算法。

$algorithms = @mcrypt_list_algorithms(); print_r($algorithms); // Array // ( //     [0] => cast-128 //     [1] => gost //     [2] => rijndael-128 //     [3] => twofish //     [4] => arcfour //     [5] => cast-256 //     [6] => loki97 //     [7] => rijndael-192 //     [8] => saferplus //     [9] => wake //     [10] => blowfish-compat //     [11] => des //     [12] => rijndael-256 //     [13] => serpent //     [14] => xtea //     [15] => blowfish //     [16] => enigma //     [17] => rc2 //     [18] => tripledes // )  $modes = @mcrypt_list_modes(); print_r($modes); // Array // ( //     [0] => cbc //     [1] => cfb //     [2] => ctr //     [3] => ecb //     [4] => ncfb //     [5] => nofb //     [6] => ofb //     [7] => stream // )

mcrypt_list_algorithms() 函數(shù)可以獲得當(dāng)前環(huán)境下所有支持的 Mcrypt 算法。而 mcrypt_list_modes() 則打印出了當(dāng)前環(huán)境下所有可支持的模塊。注意在某些版本的 PHP 或者某些系統(tǒng)中,這些內(nèi)容會有所不同,在使用 Mcrypt 相關(guān)的加密能力的時候,這兩項(xiàng)都是相互配合使用的。因此,我們有必要在需要運(yùn)行 Mcrypt 的環(huán)境中預(yù)先確定好當(dāng)前環(huán)境下所支持的模塊和算法。

加密解密數(shù)據(jù)

$key = hash('sha256', 'secret key', true); $input = json_encode(['id'=>1, 'data'=>'Test mcrypt!']);  $td = @mcrypt_module_open('rijndael-128', '', 'cbc', ''); $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM); @mcrypt_generic_init($td, $key, $iv); $encrypted_data = @mcrypt_generic($td, $input); @mcrypt_generic_deinit($td); @mcrypt_module_close($td);  echo $encrypted_data, PHP_EOL; // ??I      $?3???gE??u(?9n????? //                            p?>P  $td = @mcrypt_module_open('rijndael-128', '', 'cbc', '');  @mcrypt_generic_init($td, $key, $iv); $data = @mdecrypt_generic($td, $encrypted_data); echo $data, PHP_EOL; // {"id":1,"data":"Test mcrypt!"}  @mcrypt_generic_deinit($td); @mcrypt_module_close($td);

代碼比較多也較亂,我們一塊一塊來看。

首先是我們確定一個加密的 key ,然后 input 就是我們要加密的數(shù)據(jù)。比如我們要加密一個 json 數(shù)據(jù)。這個 key 其實(shí)用字符串就可以,但我們這里也對 key 進(jìn)行了一次 hash 處理,這個 hash 相關(guān)的內(nèi)容在上一篇文章我們已經(jīng)詳細(xì)的講解過了。

接下來就是使用 mcrypt_module_open() 打開一個加密模塊句柄,這里我們使用 rijndael-128 算法和 cbc 模塊。然后使用 mcrypt_create_iv() 創(chuàng)建一個 iv ,這個 iv 就是一個初始化向量。初始化向量的值依密碼算法而不同。最基本的要求是“唯一性”,也就是說同一把密鑰不重復(fù)使用同一個初始化向量。這個特性無論在分組加密或流加密中都非常重要。相信大家要是做過微信或支付寶相關(guān)的接口通信,在解密驗(yàn)證數(shù)據(jù)的時候一定會見過這個 iv 屬性。

使用 mcrypt_generic() 生成加密結(jié)果,使用 mcrypt_generic_deinit() 結(jié)束生成初始化,最后通過 mcrypt_module_close() 關(guān)閉加密模塊句柄。這樣,一套 Mcrypt 加密流程就完成了。

同樣的,解密流程和加密流程也是類似的,只是我們使用 mdecrypt_generic() 這個函數(shù)來進(jìn)行解密就可以了。

另一種加密解密數(shù)據(jù)方式

上面的加密流程非常麻煩而且復(fù)雜,其實(shí)在 Mcrypt 中還提供了一種更簡單的加密函數(shù)。

$string = 'Test MCrypt2'; $algorithm = 'rijndael-128'; $key = md5( "mypassword", true); $iv_length = @mcrypt_get_iv_size( $algorithm, MCRYPT_MODE_CBC ); $iv = @mcrypt_create_iv( $iv_length, MCRYPT_RAND );  $encrypted = @mcrypt_encrypt( $algorithm, $key, $string, MCRYPT_MODE_CBC, $iv ); $result = @mcrypt_decrypt( $algorithm, $key, $encrypted, MCRYPT_MODE_CBC, $iv );  echo $encrypted, PHP_EOL; // <?`?U??Uf)?Y echo $result, PHP_EOL; // Test MCrypt2

我們依然要準(zhǔn)備好要加密的數(shù)據(jù),算法,key ,以及 iv 向量。然后直接使用 mcrypt_encrypt() 和 mcrypt_decrypt() 來進(jìn)行加/解密就可以了,是不是方便很多。

總結(jié)

相對于 Hash 來說,Mcrypt 是可解密的對稱加密形式。關(guān)于什么是對稱和非對稱加密,我們將在 OpenSSL 擴(kuò)展的學(xué)習(xí)中詳細(xì)地講解,而 Hash 加密則是單向的加密形式,是無法通過加密后的數(shù)據(jù)反向計算獲得原始數(shù)據(jù)的。它們都有不同的應(yīng)用場景,不過就像 PHP 提示的那樣,Mcrypt 已經(jīng)是不推薦使用的擴(kuò)展了,所以我們在這里只是簡單的進(jìn)行了加/解密的測試而已,如果有用到的小伙伴,可以根據(jù)手冊進(jìn)行更深入地學(xué)習(xí)。

測試代碼:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202007/source/PHP%E7%9A%84Mcrypt%E5%8A%A0%E5%AF%86%E6%89%A9%E5%B1%95%E7%9F%A5%E8%AF%86%E4%BA%86%E8%A7%A3.php

推薦學(xué)習(xí):php視頻教程

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
久久99影视| 国产精品igao视频网网址不卡日韩| 青青草国产精品亚洲专区无| 偷拍亚洲精品| 麻豆亚洲精品| 日本在线视频一区二区| 欧美中文高清| 精品国产亚洲一区二区在线观看| 不卡福利视频| 五月天久久网站| 婷婷精品在线观看| 国产精品一线| 日韩欧美二区| 国产一区国产二区国产三区| 亚洲爱爱视频| 在线综合亚洲| 欧美日韩午夜| 麻豆网站免费在线观看| 欧美精品一二| 亚洲一级淫片| 国产精品久久久久久久免费观看| 国产91久久精品一区二区| 亚洲精品一二三区区别| 日韩一区二区三区在线看| 精品国产aⅴ| 夜夜嗨av一区二区三区网站四季av| 亚洲一区二区三区久久久| 国产精品中文| 国产精品成人一区二区不卡| 欧美亚洲国产激情| 国产美女视频一区二区| 久久狠狠婷婷| 国产精品久久久久9999高清| 日韩中文影院| 亚洲毛片在线| 国产精品久久久久久久久妇女| 欧美福利在线| 亚洲人成毛片在线播放女女| 开心激情综合| 99视频精品免费观看| 日本少妇精品亚洲第一区| 成人片免费看| 日韩高清电影一区| 国产激情欧美| 久久午夜精品一区二区| 日本一区二区高清不卡| 免费观看在线综合色| 国产精品精品国产一区二区| 中文字幕视频精品一区二区三区| 日韩大片免费观看| 日日夜夜免费精品视频| 久久国产欧美| 免费观看亚洲天堂| 久久都是精品| 久久久久久久久99精品大| 欧美精品观看| 国产日韩专区| 欧美亚洲国产激情| 亚洲狼人精品一区二区三区| 久久久久久黄| 精品午夜久久| 国产另类在线| 欧美精品一区二区三区精品| 久久香蕉精品香蕉| 欧美日韩亚洲一区二区三区在线 | 亚洲综合丁香| 精品国产乱码久久久久久樱花| 亚洲伊人精品酒店| 亚洲成人免费| 成人国产精品久久| 国产美女亚洲精品7777| 香蕉久久国产| 国产亚洲高清在线观看| 亚洲专区视频| 国产亚洲福利| 国产一区久久| 日韩在线观看| 亚洲一区资源| 日本一区二区高清不卡| 牛牛精品成人免费视频| 四虎国产精品免费久久| 在线国产一区| 久久在线电影| 亚洲黄色网址| 精品精品久久| 久久香蕉网站| 国产精品不卡| 国产伦精品一区二区三区千人斩 | 亚洲一区二区三区高清不卡| 91tv亚洲精品香蕉国产一区| 在线天堂资源www在线污| 欧美国产另类| 欧美黄页在线免费观看 | 亚洲高清毛片| 欧美日韩国产传媒| 欧美va天堂| 男人天堂欧美日韩| 视频一区视频二区中文| 狠狠色狠狠色综合日日tαg| 视频福利一区| 亚洲黄色中文字幕| 日韩成人综合| 激情久久久久久久| 亚洲国产成人精品女人| 在线视频亚洲| 亚洲精品少妇| 欧美一区=区三区| 国产伦一区二区三区| 日本久久一区| 国产毛片久久久| 国产麻豆精品久久| 美女视频黄 久久| 国产精品国产三级国产在线观看| 日韩欧美中文字幕一区二区三区 | 精品美女视频| 人人草在线视频| 黄色欧美日韩| 日韩av一级片| 精品中文在线| 久久免费黄色| 国产精品日韩久久久| 亚洲精品一区二区在线播放∴| 日韩中文字幕视频网| 麻豆精品av| 国产精品宾馆| 久久久国产精品一区二区中文| 女主播福利一区| 色综合视频一区二区三区日韩 | 欧美不卡在线| 一区二区三区四区日韩| 欧美经典一区| 国产精品观看| 91精品国产自产在线观看永久∴| 亚洲我射av| 成人午夜网址| 国产亚洲毛片| 国内不卡的一区二区三区中文字幕| 都市激情国产精品| 国产精品美女| 国产精品视频一区二区三区综合| 国产成人免费视频网站视频社区| 宅男在线一区| 中文字幕一区日韩精品| 麻豆视频观看网址久久| 日韩视频在线一区二区三区 | 精品视频国产| 91久久视频| 亚洲一区二区免费在线观看| 欧美黄色一区二区| 激情久久久久久久| 国产精品久一| 欧美福利一区| 久久免费视频66| 尤物在线精品| 欧美成人一二区| 女同性一区二区三区人了人一| 国产精品久久久久久久久久齐齐 | 欧美日韩1区2区3区| 国产亚洲一区| 精品视频一二| 丝袜亚洲精品中文字幕一区| 国产丝袜一区| 日韩一区二区久久| 精品深夜福利视频| 免费看的黄色欧美网站| 免费亚洲婷婷| 亚洲精品永久免费视频| 视频一区免费在线观看| 美女精品久久| 水野朝阳av一区二区三区| 国产麻豆精品久久| 精品亚洲美女网站| 亚洲精品女人| 91亚洲国产成人久久精品| 福利一区二区免费视频| 久久麻豆精品| 欧美精品不卡| 一区二区三区视频免费观看| 日韩国产高清在线| 日韩精品久久久久久久电影99爱| 亚洲视频二区| 日韩啪啪电影网| 亚洲不卡视频| 日韩高清不卡| 日韩在线视频一区二区三区| 欧美国产偷国产精品三区| 亚洲精品亚洲人成在线观看| 欧美日韩黑人| 精品国产一区二| 亚洲一级高清| 国产精品.xx视频.xxtv| 一区在线免费观看| 精品无人区麻豆乱码久久久| 日韩在线观看一区二区| 国产精品精品国产一区二区| 三级在线观看一区二区| 国产乱码精品一区二区三区四区| 99xxxx成人网| 精品久久精品| 欧美一级久久|