您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何在PHP中使用mcript擴展實現一個對稱加密功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1.對稱加密主要利用相同的密鑰來實現,而非對稱加密利用公鑰和私鑰來加密,比較而言對稱加密速度快,但是安全性要低
為什么使用base64_encode()
,主要是用于傳參,直接加密完成后不是我們能理解的字符串,也就是大家所說的亂碼
2.進行加密(使用mcript擴展,DES類型),關鍵點在于$key="key:1111"
,相同的密鑰串
<?php header("content-type:text/html;charset=utf-8"); $str = "我是加密前的內容"; //加密內容 $key = "key:1111"; //密鑰 $cipher = MCRYPT_DES; //密碼類型 $modes = MCRYPT_MODE_ECB; //密碼模式 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初始化向量 echo "加密明文:".$str."<p>"; $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); //加密函數 echo "加密密文:".$str_encrypt." <p>"; echo $str_encrypt=base64_encode($str_encrypt);
運行結果:
加密明文:我是加密前的內容
加密密文:???v??"????c????~?Zitrn1duq6vt4i8v66Ea9jo7qZ2X7JWmkf
3.進行解密,$key="key:1111",相同的密鑰串
<?php header("content-type:text/html;charset=utf-8"); $key = "key:1111"; //密鑰 $cipher = MCRYPT_DES; //密碼類型 $modes = MCRYPT_MODE_ECB; //密碼模式 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初始化向量 $str_encrypt="trn1duq6vt4i8v66Ea9jo7qZ2X7JWmkf";//這里的值是第2步中的$str_encrypt=base64_encode($str_encrypt); $str_encrypt=base64_decode($str_encrypt); echo "加密密文:".$str_encrypt." <p>"; $str_decrypt = mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); //解密函數 echo "還原:".$str_decrypt;
運行結果:
加密密文:???v??"????c????~?Zi
還原:我是加密前的內容
關于如何在PHP中使用mcript擴展實現一個對稱加密功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。