php crypt,PHP加密函数—crypt()函数加密用法实例

本文介绍了PHP中的加密函数crypt(),讲解了数据加密原理和crypt()的使用。该函数支持多种算法,如DES、MD5等,并强调了盐值(salt)在加密过程中的作用,确保每次加密后的结果不同。通过示例展示了如何使用crypt()进行用户验证,通过对比加密后的盐值判断用户名是否存在。
摘要由CSDN通过智能技术生成

PHP加密函数—crypt()函数加密

在介绍加密函数之前,我们先来介绍一下数据加密原理:就是对原来的明文件或者数据按照某种算法进行处理,使其成为不可读的一段代码,通常称之为“密文”,通过这样的途径来达到保护数据不被非法窃取和阅读的目的!

在PHP中能对数据进行加密的函数主要有:crypt()、md5()以及sha1(),还有就是加密扩展库Mcrpyt和Mash。在这篇文章中,我们先介绍使用crpyt()函数进行加密!

crypt()函数可以完成单向加密功能,是单向字符串散列!

crypt()函数语法格式如下:string crypt ( string $str [, string $salt ] )算法salt长度

CRYPT_STD_DES2-character(默认)

CRYPT_EXT_DES9-character

CRYPT_MD512-character(以$1$开头)

CRYPT_BLOWFISH16-character(以$2$开头)

这里要说明一下:

在默认的情况下,PHP使用一个或者两个字符的 DES 干扰串,如果系统使用的是MD5,那么就会使用 12个字符,可以通过 CRYPT_SALT_LENGTH 变量来查看当前所使用的干扰串的长度!

crypt()函数实例用法:

下面我们使用一个实例,让大家一目了然,具体代码如下:<?php

header("Content-Type:text/html; charset=utf-8");

$atr = "php中文网 www.php.cn"; //声明字符串变量$atr

echo "加密之前atr的值为:".$atr;

$atr1 = crypt($atr); //对变量$str 加密

echo "
加密之后str的值为:".$atr1; //输出加密后的变量

?>

输出的结果如下:

6d3c1f3c0d82bbf9b9e84a7a8c16f1d9.png

上面的实例执行之后,一直刷新浏览器,你会发现每次生成的加密结果都是不一样的,那么该如何进行对加密后的数据进行判断就成了问题。crypt()函数是单向加密的,密文不可还原成明文的,而且每次加密后的数据都是不同的,这就是 salt 参数要解决的问题了。

crypt()函数用 salt参数对明文进行加密,判断时,对输出的信息再次使用相同的 salt 参数进行加密,对比两次加密后的结果来进行判断!

下面的实例对输入用户名进行检查,具体代码如下:<?php

header("Content-Type:text/html; charset=utf-8");

$link=mysqli_connect("localhost","root","");

$db_selected = mysqli_select_db($link,"my_db");

?>

if(isset($_POST["username"])!=""){

$usr=crypt(isset($_POST["username"]),"tm"); //对用户名进行加密

$sql = "select * from tb_user where user = '".$usr."'";//生成查询语句

$rst = mysqli_query($link,$sql); //执行语句,返回结果集

if($rst){

echo "用户名存在";

}else{

echo "用户名可以使用";

}

}

?>

输出结果如下:

569c6975ae30476cc547b5f384bcb180.png

下一篇我们将介绍如何使用MD5()函数进行加密,具体请阅读《PHP加密函数—md5()函数加密》!

【相关推荐】

1. 相关专题推荐:《PHP加密函数》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值