PHP的加密方法汇总
2021-07-20 10:06
标签:解析 dfa 整理 ocm char res tps css3 非对称加密 PHP的加密主要有4种方法,除此之外还有一种是URL的加密和解密。希望可以对你们开发有用。 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻烦了。 笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2 一、md5()加密技术 string md5(string $str[,bool $raw_output=false]):计算str的md5散列值 $str:原始字符串 $raw_output:如果可选的raw_output被设置为true,那么md5报文摘要将以16字节长度的原始二进制格式返回。返回以32位字符十六进制数字形式返回散列值。 注意:md5是不可逆的,所以只能强制解码。意思是加密了之后不可以通过其他函数进行解析出密码,只能通过第三方匹配数据库的32位字符解析出对应的原字符。 解密网站:http://www.cmd5.com/ 实例: 二、crypt加密算法 注意: 实例: 三、sha1()加密算法 实例: 四、URL编码加密技术 2.urldecode(string $str):解码已编码的URL字符串。 编码规范:此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+) 3.rawurlencode(string $str):按照RFC1738对URL进行编码 4.rawurldecode(string $str):对已编码的URL字符串进行解码 实例: 五、Base64信息编码加密技术 2.base64_decode(string $data[,bool $strict=false]):对使用MIME base64编码的数据进行解码 $strict:如果输入的数据超出了base64字母表,则返回false; 六、信息加密技术分类总结 2.对称散列加密 3.非对称散列加密 加密密钥 解密密钥 希望在开发过程中有帮助。 附上笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2 PHP的加密方法汇总 标签:解析 dfa 整理 ocm char res tps css3 非对称加密 原文地址:http://www.cnblogs.com/xieyulin/p/7056113.html
语法:
header(
"content-type:text/html;charset=‘utf8‘"
);
//设置编码
echo
md5(
"dfa"
);
//1b014086a5cf92eb3238d0d45c8c61a4
echo
"
";
echo
md5(
"dfa"
,
$raw_output
=true);
//输出: @????28??\?a?5oWV6K++572RLWtpbg==
$str
=1;
echo
md5(md5(
$str
));
//可以进行多次加密
if
(
$str
){
echo
"注册成功,3秒钟后跳转到登录页面"
;
echo
""
;
//3秒后就刷新一次页面,然后跳转到login.html
}
else
{
echo
"注册失败,请重新注册"
;
echo
""
;
}
?>
语法:
string crypt(string $str[,string $salt]);
返回一个基于标准UNIX DES算法或系统上其它可用的替代算法的散列字符串。
$str:需要机密的明文
$salt:加密时的干扰串,使编码更安全
如果加密时没有加上这个$salt参数,将随机生成一个干扰串,否则刷新加密密文不变。
echo
crypt(
"imooc"
);
echo
"
";
echo
crypt(
"imooc"
,
‘cq‘
);
//可以在生成的32位UNIX文前加th两个字符
echo
"
";
if
(CRYPT_STD_DES){
echo
"DES标准算法:"
.crypt(
"leohengchun"
,
"this is test"
);
}
echo
"
";
if
(CRYPT_MD5){
echo
"MD5加密:"
.crypt(
"leohengchun"
,
‘$1$cdsaf$‘
);
//一定要写成$1$...
}
echo
"
";
if
(CRYPT_MD5){
echo
"MD5加密:"
.crypt(
"leochun"
,
‘$1$xshowsd dfds$‘
);
}
?>
语法:
string sha1(string $str[,bool $raw_output=false]):计算字符串的sha1散列值
$str:加密的字符串
$raw_output:如果可选的raw_output参数被设置为TRUE,那么sha1摘要将以20字符长度的原始格式返回,否则返回值是一个40字符长度的十六进制数字。
返回sha1散列值字符串。
echo
sha1(
"leohc"
);
echo
"
";
echo
sha1(
"leohc"
,true);
//加了ture 生成的是:n??7?_#B???[?B??9j
echo
"
";
echo
sha1(
"admin"
);
echo
"
";
echo
sha1(md5(
"admin"
,true));
?>
1.urlencode(string $str):编码URL字符串
$str:要编码的字符串
返回值:返回编码后的字符串
$str:要解码的字符串
返回值:返回解码后的字符串
$str:要编码的URL
返回值:返回字符串,把空格编码为%20
$str:要解码的URL
返回值:返回字符串,此字符串中百分号%后跟两位十六进制的序列都将被替换成原义字符
/*
原码 转换编码
? %3F
= %3D
空格 +
% %25
& %26
\ %5C
*/
$str
=
"h e l lo world"
;
echo
urlencode(
$str
);
echo
"
";
$str
=
"urlencode.php?username=1+3%4&imooc&king#or1=1\ "
;
echo
urlencode(
$str
);
echo
"
";
$urlencode
=urlencode(
$str
);
echo
urldecode(
$urlencode
);
//用来解码
echo
"
";
if
(!
empty
(
$_GET
)){
print_r(
$_GET
);
}
echo
‘hello‘
;
echo
"
";
$username
=
"imooc&king"
;
$queryString
=
"username="
.urlencode(
$username
).
"&age=2"
;
echo
"test"
;
echo
"
";
echo
urldecode(
"https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=site888_3_pg&wd=%E7%99%BE%E5%BA%A6%E4%BA%91&oq=crypt&rsv_pq=fac4a3dc0002be07&rsv_t=16d5wj9i3VPccyU6g9qIm86QNweuVYvCtNwPZ8u27y%2BEOCmwYlgt7irSlH5hePjE8Ug5&rsv_enter=1&rsv_sug3=10&rsv_sug1=3&rsv_sug7=100&sug=%E7%99%BE%E5%BA%A6%E4%BA%91&rsv_n=1&bs=crypt"
);
echo
"
";
echo
urlencode(
"墨客我"
);
//%E5%A2%A8%E5%AE%A2%E6%88%91
echo
"
";
echo
urlencode(
"this is a test"
);
//this+is+a+test
echo
"
";
echo
rawurlencode(
"this is test"
);
//this%20is%20test
echo
"
";
echo
rawurlencode(
"this%20is%20a%20test"
);
//this%2520is%2520a%2520test
echo
"
";
echo
rawurldecode(
"this+is+a+test"
);
//this+is+a+test
echo
"
";
echo
urldecode(
"this+is+a+test"
);
//this is a test
?>
1.base64_encode(string $data):使用base64对data进行编码
$data:要编码的数据
实例:
$data
=
"慕课网-kin"
;
echo
base64_encode
(
$data
);
echo
"
";
echo
base64_decode
(
"5oWV6K++572RLWtpbg=="
);
echo
"
";
//图片的加密和转化
echo
base64_encode
(
""
);
//加密
echo
base64_decode
(
"PGltZyBzcmM9J3VybC5wbmcnPg=="
);
//解码
$filename
=
"url.png"
;
//加密
$data
=
file_get_contents
(
$filename
);
echo
base64_encode
(
$data
);
//加密 可以生成一串ascii码
echo
""
;
?>
信息加密:
1.单项散列加密
单项散列加密技术简介:
单向散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,即不能对固定长度的输出进行计算而获得输入信息。
salt
↓
明文----->单向散列算法--密文--->
对称加密技术介绍:
堆成加密时指加密和解密使用的密钥是同一个密钥或者可以互相推算。
salt 密钥
↓ ↓
明文----->加密算法--密文--->解密算法--明文-->
非对称加密和解密使用的密钥不是同一个密钥,其中一个对外公开,被称作公钥,另一个只有所有者知道。
↓ ↓
明文----->加密算法--密文--->解密算法--明文-->
上一篇:大话PHP设计模式笔记
下一篇:php 转化smiles为分子式