一、MD5加密
直接干,这里以一个登录页面为例:
<"INSERT INTO user(username,password) VALUES('{$username}','{$password}')"; $result=mysqli_query($link, $sql); if ($result) { echo "Success"; echo "<meta http-equiv='refresh' content='1;url=login.html'/>"; }else { echo "Failure!"; echo "<meta http-equiv='refresh' content='1;url=reg.html'/>"; } }elseif ($act=='login') { $sql="SELECT * FROM user WHERE username='{$username}' AND password='{$password}'"; $result=mysqli_query($link, $sql); $validate=mysqli_fetch_array($result); //var_dump($validate); if ($validate) { echo "success"; echo "<meta http-equiv='refresh' content='1;url=http://www.baidu.com'/>"; }else { echo "failure"; echo "<meta http-equiv='refresh' content='1;url=login.html'/>"; } }
主要就是记得比对的时候也使用MD5,所以存在数据库中的时候就是密码保存的了
mysql> SELECT * FROM user; +----+----------+----------------------------------+ | id | username | password | +----+----------+----------------------------------+ | 1 | 123 | d41d8cd98f00b204e9800998ecf8427e | | 2 | 123 | 5e12a8f9c9e959060fdcaea165393039 | | 3 | | d41d8cd98f00b204e9800998ecf8427e | | 4 | root | 202cb962ac59075b964b07152d234b70 | | 5 | root | 0c51f0ba4316a5c844397f69effe2d01 | +----+----------+----------------------------------+
二、Crypt加密算法
同样是一个单向加密算法,无法由密文直接得到明文密码(和MD5一样);
语法:string crypt(string $str[,string $salt]),$str为加密明文,$salt为干扰项,可以理解为椒盐噪声;
/** * Crypt */ echo crypt('shit'); echo "<hr/>"; echo crypt('shit','im'); echo "<hr/>"; if (CRYPT_EXT_DES) { echo crypt('shit','this is a test'); } echo "<hr/>"; if (CRYPT_MD5) { echo crypt('shit','$1$this is a test$'); }
基本没什么要说的,就一点,crypt的加密有不同的加密算法,默认的是MD5加密,但是若是不给定“盐值”,每次刷新,都是不一样的结果;
然后可以指定盐值,具体参见手册,每个算法的盐值长度是不一样的,比如上述的DES和MD5,结果如下
1223b8c30a347321299611f873b449ad $1$ed0.Ph..$fPbfhSOMLyNdtZn9krT8X/ im37cLeO/JPaQ th12A1V7QCns. $1$this is $Bu9FE8Y8oGnIbftjDA4ez0
DES只能取两位,而MD5取了8位;
用法上也差不多,记得输入盐值才好。
三、Sha1
同样是单向加密,不可破解(但网上的办法都是类似数据库一样的“伪暴力”破解);
与MD5的区别在于返回更长的(40位)16进制的数串(MD5是32位);
/** * Sha1 */ echo "<hr/>"; echo sha1('shit'); echo "<hr/>"; echo sha1('shit',true); echo "<hr/>"; echo sha1('admin');
所以,一般加密保存,不要单独使用这些密码,不如这样子混合使用:
echo "<hr/>"; echo sha1(sha1('admin',true)); echo "<hr/>"; echo sha1(md5('admin'));
等于是加密外面又自行进行了简单的加密!!
四、URL编码加密
对地址栏信息进行加密;
双向,urlencode和urldecode;
/** * URL编码加密 */ $str="this is a test"; $result=urlencode($str); echo $result; echo "<hr/>"; echo urldecode($result); echo "<hr/>"; $str="login.php"; echo urlencode($str); echo "<hr/>"; echo "<a href='index.php"; print_r($_GET); echo "<hr/>"; //所以地址栏进行一下编码,一方面是保密,一方面是处理特殊情况 //比如username&shit是一个整体,不编码的话,浏览器是看不出的 echo "<a href='index.php"; print_r($_GET); echo "<hr/>"; $str="username&shit"; $str2="username=".urlencode($str)."&gender=".urlencode("male"); echo "<a href='index.php".$str2."'>Shit Login3</a>"; print_r($_GET); echo "<hr/>"; //baidu example //https://www.baidu.com/s"htmlcode">this+is+a+test this is a test login.php%3Fusername%3Dshit%26action%3Dact%253+hape%23123%5C Shit LoginArray ( [username] => username&shit [gender] => male ) Shit Login2Array ( [username] => username&shit [gender] => male ) Shit Login3Array ( [username] => username&shit [gender] => male )所以功能就是:地址栏更加安全,不再明文传输,另一个解决特殊情况的传递
五、Base64编码加密
其实base64不是加密技术,只不过他会对data进行base64的编码,也可以看做是一种加密技术;
/** * Base64 */ $data="I am king"; echo base64_encode($data); echo "<hr/>"; echo base64_decode(base64_encode($data)); echo "<hr/>"; echo base64_encode("中文测试"); echo "<hr/>"; // echo base64_decode("R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="); $data=file_get_contents("0.jpg"); echo base64_encode($data);等于说是对内容进行加密;
总结
单项散列加密:得到固定长度的输出,是单向的;
对称散列加密:使用同一把密钥进行加密解密,可以相互推算;(算法简单,效率高,开销小,适合对大量数据进行加密)DES等
非对称加密技术:密钥不一样,公钥和私钥之分
以上这篇PHP加密技术的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]