成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

PHP如何使用Mcrypt加密

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

PHP如何使用Mcrypt加密

模塊和算法

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

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

$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() 函數可以獲得當前環境下所有支持的 Mcrypt 算法。而 mcrypt_list_modes() 則打印出了當前環境下所有可支持的模塊。注意在某些版本的 PHP 或者某些系統中,這些內容會有所不同,在使用 Mcrypt 相關的加密能力的時候,這兩項都是相互配合使用的。因此,我們有必要在需要運行 Mcrypt 的環境中預先確定好當前環境下所支持的模塊和算法。

加密解密數據

$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 就是我們要加密的數據。比如我們要加密一個 json 數據。這個 key 其實用字符串就可以,但我們這里也對 key 進行了一次 hash 處理,這個 hash 相關的內容在上一篇文章我們已經詳細的講解過了。

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

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

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

另一種加密解密數據方式

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

$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

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

總結

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

測試代碼:

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

推薦學習:php視頻教程

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
欧美肥妇BWBWBWBXX| 日文中字乱码一二三区别在哪| 欧美成人片一区二区三区| 欧美人与禽ZOZZO| 人人妻人人澡人人爽人人精品图片 | 一本久道中文无码字幕AV| 中文字幕熟妇人妻在线视频| 把腿张开老子臊烂h视频| 粗大猛烈进出高潮喷浆H| 国产欧美VA欧美VA香蕉在 | 欧美人与动欧交视频| 日本精品VIDEOSSEX 黑| 天天摸夜夜添狠狠添婷婷| 亚洲AV图片一亚洲AV| 永久免费AV网站| 别揉我奶头~嗯~啊~| 国产精品久久久久影院亚瑟妓| 韩漫无羞遮无删减漫免费| 久久熟妇一区二区三区紧湿| 秋霞成人无码电影在线观看| 天天做天天摸天天爽天天爱| 亚洲乱码卡1卡2新区3| 中文字幕VA一区二区三区| 爆乳2把你榨干哦在线观看| 亚洲AV高清一区二区三区| 亚洲亚洲人成无码网WWW| chinese人妻无码人妻| 国产激情一区二区三区小说| 久久精品国产亚洲AV嫖农村妇女| 男女24式动态图| 挺进绝色老师的紧窄小肉 | WWW.一区二区三区在线 || 国产精品爆乳奶水无码视频| 公车揉捏顶弄伸入| 多毛BGMBGMBGM胖在| 黑人上司好猛我好爽中文字幕| 末成年女AV片一区二区| 他的舌头探进蜜源毛毛虫说说| 亚洲色欲综合天堂亚洲| 成年免费A级毛片无码| 回民丰满少妇XXX性| 欧美熟妇精品一区二区蜜桃视频| 午夜福利AV无码一区二区| 无码日韩人妻AV一区免费| 夜夜高潮次次欢爽AV女视频| 大明荫蒂女人毛茸茸| 久久99精品国产麻豆婷婷| 人妻久久久精品99系列A片| 亚洲成A人一区二区三区| W永久939W乳液78| 护士扒下内裤让我爽一夜| 人人做人人爱在碰免费| 亚洲欧洲AV综合一区二区三区| 差差差很疼免费软件APP下载| 精品人妻少妇一区二区三区不卡| 极品少妇被猛的白浆直喷白浆| 人妻精品一区二区三区蜜桃| 亚洲欧美综合区丁香五月小说| 吃饭时把腿张开故意让公| 久久久久99精品成人片欧美| 天天躁日日躁狠狠躁婷婷| 1024久久亚洲精品无码| 国产男女爽爽爽免费视频 | 先の欲求不満な人妻无码| 99热国产这里只有精品无卡顿| 黑人又大又粗又长欧美网站| 日韩av无码一区二区| 一边喂奶一边挨CAO| 国产精品日韩欧美一区二区三区| 欧美人与牲禽动交精品| 亚洲另类自拍丝袜第五页| 边做饭边被躁欧美三级| 久久久久无码精品国产不卡| 无码人妻一区二区中文| ZOOM动物高清视频| 久久丫精品国产亚洲AV| 欧洲免费无线码在线一区| 亚洲精品卡2卡3卡4卡5卡区| 3D动漫精品啪啪一区二区中| 好爽又高潮了毛片| 熟妇人妻中文字幕无码老熟妇| 18禁无遮挡啪啪摇乳动态图 | 亚洲国产成人久久综合| 高清乱码一区二区三区| 欧美巨大乳BBWVIDEOS| 亚洲最大成人一区久久久| 国产美女高潮视频| 日韩人妻无码精品久久| 97精品国产一区二区三区| 久久九九日本韩国精品| 亚洲AV理论在线电影网| 公咬着小娇乳H边走边欢视频 | 欧美无遮挡很黄裸交视频| 夜夜揉揉日日人人青青| 黑料不打烊吃瓜爆料| 无码人妻丰满熟妇片毛片| 被公侵犯的漂亮人妻中文字幕| 免费无码午夜福利片| 亚洲综合久久一区二区| 加勒比久久综合久久鬼色88| 无人区卡一卡二卡三乱码入口| 吃奶呻吟打开双腿做受是免费视频 | 亚洲AV无码一区二区三区国产| 国产妇女馒头高清泬20P多毛 | 国产CHINESE男男GAYGAY网站| 人人玩人人添人人澡东莞| 99久久精品美女高潮喷水| 毛茸茸的撤尿正面BBW| 少妇高潮喷水在线观看| 宝贝乖女小芳小雪| 欧美粗大猛烈老熟妇| 中国丰满熟妇XXXX| 久久无码中文字幕免费影院| 亚洲高清AⅤ日本欧美视频| 国产午夜鲁丝片AV无码| 嫩B人妻精品一区二区三区| 一本大道大臿蕉无码视频| 精品熟女少妇AV免费观看| 亚洲丰满少妇自摸| 国内美女推油按摩在线播放 | 野花日本高清在线观看免费| 精品无码黑人又粗又大又长AV| 亚洲成AⅤ人片在线观看天堂无码| 国产亚洲AV片在线观看播放按摩| 无线乱码不卡一二三四破解版| 国产精品人成视频免费播放| 无码人妻精品一区二区三区99仓| 国产精品视频一区二区| 午夜理论片YY6080影院| 国产日产欧产精品精品蜜芽| 性无码免费一区二区三区屯线| 国产艳妇AV在线出轨| 亚洲AV无码成人| 被窝里的翁憩二十六| 日本XXX色视频| 大肉大捧一进一出视频出来呀| 色又黄又爽18禁免费网站| 公的下面好大弄得我好爽| 为了撞上你1∨1SC| 国产免费无遮挡吃奶视频| 亚洲AV永久无码精品无码少妇| 激情人妻另类人妻伦| 亚洲欧洲日产V一个人免费观看视频WWW高清 | 未满小14洗澡无码视频网站| 国产女主播高潮在线播放| 亚洲VA久久久噜噜噜久久狠狠| 九九视频麻婆豆腐在线观看| 夜夜澡天天碰人人爱AV| 免费观看A级毛片| 亚洲成熟丰满熟妇高潮XXXXX| 精品国产一区二区三区麻豆| 野花高清在线观看免费3| 奶头大他一口都含不住| 被俩个黑人前后破苞的女人| 少妇人妻无码永久免费视频| BTА√天堂中文在线官网| 日本极品白嫩ASSPICS| 国产成人婷婷丁香在线| 性做久久久久久久| 精品少妇人妻AV无码久久| 中文乱码字幕视频观看网站免费| 拍摄AV现场失控高潮数次| 国产AV无码专区亚洲AV漫画| 亚洲AV无码专区国产乱码波多野 | 97无码免费人妻超级碰碰碰碰| 人妻一区二区在线| 国产剧情麻豆女教师在线观看| 亚洲欧美日韩综合久久久久| 妺妺窝人体色聚窝窝www偷窥| 成熟交BGMBGMBGM| 亚洲AV无码片区一区二区三区| 麻豆国产成人AV高清在线| 被黑人扒开双腿猛进夏科骨科| 午夜精品久久久久9999高清| 久久久久人妻精品一区| Z〇ZOZ〇女人另类ZOZ〇| 无码人妻久久一区二区三区 | 天堂AV无码大芭蕉伊人AV不卡 | 热99RE久久精品| 国产内射老熟女AAAA∵| 永久亚洲成A人片777777| 日本少妇人妻XXXXX18| 国产亚洲AV片在线观看播放| 中文无码人妻丰满熟妇啪啪| 少妇高潮喷水惨叫久久久久电影| 精品人妻AV一区二区三区| HEZYO东京热无码专区| 小蜜被两老头吸奶头| 国产熟女一区二区| 在线欧美熟妇内射高潮| 少妇高潮惨叫久久久久久电影| 精品无码人妻夜人多侵犯18| 八戒八戒在线资源网| 亚洲VA久久久噜噜噜熟女8| 欧美V日韩V亚洲V最新在线观看| 国产精品高潮露脸在线观看| 中文精品久久久久鬼色| 无码中文字幕AV久久专区| 男女啪啪吃奶GIF动态图| 国产精品秘入口18禁麻豆免会员|