详细解析PHP常用的加密函数,crypt()、md5()和sha1()

本文深入探讨了数据加密的基本原理,介绍了PHP中常用的加密函数,包括单向加密函数crypt、md5和sha1。通过实例展示了如何使用这些函数对数据进行加密处理,保障信息安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据加密的原理就是对原来明文的文件或数据按照某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”

一、crypt()

crypt()函数可以完成单向加密功能,语法是:

string crypt(string str[,string salt])

其中,str是需要加密的字符串,salt为加密时使用的干扰串。如果省略掉第二个参数,则会随机生成一个干扰串。
crypt()函数支持4种算法和salt参数长度,如下表:

算法salt长度
CRYPT_STD_DES2-character(默认)
CRYPT_EXT_DES9-character
CRYPT_MD512-character(以 $1 $开头)
CRYPT_BLOWFISH16-character(以 $2 $开头)

实例:

<?php
	$str = "这是一个关于PHP加密函数的实例";
	echo '加密前$str的值为:'.$str;
	echo "<p>";
	$cryptstr = crypt($str);
	echo '加密后的值为:'.$cryptstr;
?>

运行结果:
在这里插入图片描述
注意:每次刷新都会出现不同的加密结果。 php 5.6及之后的版本会在没有它的情况下抛出一个 E_NOTICE 级别的错误。为了更好的安全性,请确保指定一个足够强度的盐值。

二、md5()

md5函数使用MD5算法,它的作用是把不同长度的数据信息经过一系列的算法计算成一个128位的数值。
语法格式为:

string md5(string str[,bool raw_output])

字符串str为要加密的明文,raw_output默认为:false,如果设为true,则函数返回一个二进制形式的密文。
很多网站注册用户的密码都使用md5加密,然后保存到数据库中,用户登录时,程序把用户输入的密码计算成md5值,然后再和数据库中保存的md5值进行比较。在这个过程中,程序自身都不会知道用户的真实密码,从而保证用户的个人隐私,提高安全性。
实例:

<?php
	$str = "这是一个md5加密的字符串";
	$strmd5 = md5($str);
	echo $strmd5;
?>

运行结果:
在这里插入图片描述

三、sha1()

和md5加密算法类似,sha算法为安全哈希算法。
语法为:

string sha1(string str[,bool raw_output])

字符串str为要加密的明文,raw_output默认为:false,如果为false,则函数返回一个40位的十六进制数,如果设为true,则函数返回一个20位的二进制数。
例如:

<?php
	$str = "hello";  //定义字符串hello
	$strmd5 = md5($str);  //md5加密
	$strsha1 = sha1($str);    //sha1加密
	echo "使用md5加密字符串后的值为:".$strmd5;
	echo "<p>";
	echo "使用sha1加密字符串后的值为:".$strsha1;
?>

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值