PHP基於mcript擴展實現對稱加密功能示例

這篇文章主要介紹了PHP基於mcript擴展實現對稱加密功能,結合實例形式簡單分析了php使用mcript擴展進行加密與解密相關操作技巧,需要的朋友可以參考下

本文實例講述了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����~�Zi

trn1duq6vt4i8v66Ea9jo7qZ2X7JWmkf

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
還原:我是加密前的內容

PS:關於加密解密感興趣的朋友還可以參考本站在線工具:

在線DES加密/解密工具
http://tools.jb51.net/password/des_encode

MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password

在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

更多關於PHP相關內容感興趣的讀者可查看本站專題:《php加密方法總結》、《PHP編碼與轉碼操作技巧彙總》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《php正則表達式用法總結

希望本文所述對大家PHP程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章