本文實例講述了php基于mcript擴展實現(xiàn)對稱加密功能,結(jié)合實例形式簡單分析了php使用mcript擴展進行加密與解密相關(guān)操作技巧,分享給大家供大家參考,具體如下:
1.對稱加密主要利用相同的密鑰來實現(xiàn),而非對稱加密利用公鑰和私鑰來加密,比較而言對稱加密速度快,但是安全性要低
為什么使用base64_encode(),主要是用于傳參,直接加密完成后不是我們能理解的字符串,也就是大家所說的亂碼
2.進行加密(使用mcript擴展,des類型),關(guān)鍵點在于$key=key:1111,相同的密鑰串
<?php
header(content-type:text/html;charset=utf-8);
$str = 我是加密前的內(nèi)容; //加密內(nèi)容
$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); //加密函數(shù)
echo 加密密文:.$str_encrypt. <p>;
echo $str_encrypt=base64_encode($str_encrypt);
運行結(jié)果:
加密明文:我是加密前的內(nèi)容
加密密文:???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); //解密函數(shù)
echo 還原:.$str_decrypt;
運行結(jié)果:
加密密文:???v??”????c????~?zi
還原:我是加密前的內(nèi)容