PHP函数:处理加密,哈希和解码
1. 加密函数
在PHP中,常见的加密函数有md5()、sha1()、crypt()等。
md5()
md5()函数是PHP中最基本的加密函数之一,它可以将任意长度的字符串转换成长度为32个字符的16进制数字。md5()函数可以用于对密码进行加密,以增加其安全性。
语法:md5(string $str, bool $raw_output = false)
参数:$str是需要加密的字符串,$raw_output表示是否返回原始二进制数据,默认为false。
示例:
$pwd = "123456";
$encrypted_pwd = md5($pwd);
echo $encrypted_pwd;
输出:
e10adc3949ba59abbe56e057f20f883e
sha1()
sha1()函数也是一种常见的加密函数,它可以将任意长度的字符串转换成长度为40个字符的16进制数字。
语法:sha1(string $str, bool $raw_output = false)
参数:$str是需要加密的字符串,$raw_output表示是否返回原始二进制数据,默认为false。
示例:
$pwd = "123456";
$encrypted_pwd = sha1($pwd);
echo $encrypted_pwd;
输出:
7c4a8d09ca3762af61e59520943dc26494f8941b
crypt()
crypt()函数是一种比较常用的加密函数,它可以对字符串进行加密并返回加密后的字符串。crypt()函数使用DES算法进行加密,并可以指定salt值,增加加密的强度和随机性。
语法:crypt(string $str, string $salt = '')
参数:$str是需要加密的字符串,$salt是指定的salt值,可以为空字符串。
示例:
$pwd = "123456";
$salt = '$6$' . substr(md5(mt_rand()), 0, 16);
$encrypted_pwd = crypt($pwd, $salt);
echo $encrypted_pwd;
输出:
$6$1f03528c3a1f3190$N4P.8tlFl.niWXj4DjrB1RlZnN/H.UtXRxg8QBJH1ciFLnvTuC6pP0qx8FGc677SHBBt8R0ZK6dxf0xFlfw0P0
2. 哈希函数
哈希函数是将任意长度的数据转换成固定长度的数据(通常是固定长度的整数),并具有单向性:哈希值不能反推出原始数据。常见的哈希函数有md5()、sha1()、sha256()、sha512()等。
语法:hash(string $algo, string $data, bool $raw_output = false)
参数:$algo表示指定的哈希算法,例如"md5"、"sha1"、"sha256"、"sha512"等;$data是需要哈希的数据;$raw_output表示是否返回原始二进制数据,默认为false。
示例:
$data = "hello world";
$hash = hash('sha256', $data);
echo $hash;
输出:
2ef7bde608ce5404e97d5f042f95f89f1c232871d2170e1ad1c6b881b587ffe
3. 解码函数
解码函数是将编码过的数据进行还原的函数,常见的解码函数有base64_decode()、urldecode()等。
base64_decode()
base64_decode()函数可以将通过base64编码的字符串进行还原,并返回原始数据。
语法:base64_decode(string $str, bool $strict = false)
参数:$str是需要解码的字符串,$strict表示是否进行严格解码,如果为true则只允许使用标准base64字符集。
示例:
$data = "aGVsbG8gd29ybGQ=";
$decoded_data = base64_decode($data);
echo $decoded_data;
输出:
hello world
urldecode()
urldecode()函数可以将经过urlencode()编码的字符串进行还原,并返回原始数据。
语法:urldecode(string $str)
参数:$str是需要解码的字符串。
示例:
$data = "hello%20world";
$decoded_data = urldecode($data);
echo $decoded_data;
输出:
hello world
