news 2026/10/21 21:50:47

PHP四大加密技术全解析+实战笔记免费领

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP四大加密技术全解析+实战笔记免费领

在PHP语言里, 加密的操作方式主要有那四种常用的办法。除了刚才提到的这几个方法以外, 还有一种跟网址链接相关的加密处理以及解密的方式是另外一种存在的情况。我希望这段文字内容对于你们正在进行的软件开发工作能够提供一点实际的帮助作用和使用价值参考。

另外, 我把之后整理出来的一整套关于CSS3、PHP和MYSQL开发的笔记都打包好了, 会放到百度云盘里, 谁要是需要的话可以直接去那个地盘上下载, 这样往后你们在做开发的时候, 就可以随时翻看这份笔记, 就不必再去百度上面辛辛苦苦地搜索那么多东西了。

笔记的链接在哪里呢? 还有那个密码, 它是pvj2。

一、md5()加密技术

语法:

md5( $str

布尔值设为假, 具体数值等于零。

):计算str的md5散列值

$str:原始字符串

若将可选参数设定为true, 那么md5报文摘要将会以长度为16字节的原始二进制格式进行返回。同时, 散列值将以32位字符的十六进制数字形式予以返回。

请注意, md5算法本身的性质决定了它是一个不可逆的过程, 因此严格来说不存在所谓的强制直接解码, 只能借助其他手段。

其核心含义是: 数据在完成加密处理之后, 无法通过任何内置函数反向推导出原始的密码明文, 而唯一可行的途径, 是依赖第三方的匹配数据库, 利用32位长度的字符组合进行比对分析, 从而解析出对应的原始字符内容。

对相关的网站予以解密处理。

实例:

<!--?php</p-->

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 "";

}

?>

二、crypt加密算法

语法:

crypt( $str

这个部分, 以及$salt。

);

它会返回一个散列字符串, 这个散列字符串是基于标准UNIX DES算法生成的, 或者是基于该系统中其他可以使用的替代算法来生成的。

$str:需要机密的明文

$salt:加密时的干扰串, 使编码更安全。

注意:

在执行加密操作的时候, 假如根本就没有添上这个名为$salt的参数, 系统就会去随机生产一个用来干扰的字符串。如果已经添加了该参数, 刷新加密程序之后, 生成的加密密文依然保持不变。

实例:

<!--?php</p-->

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$');

}

?>

三、sha1()加密算法

语法:

sha1( $str

布尔值设为假, 具体数值等于零。

对当前的这个字符串进行相关的运算, 目的是求得它的sha1散列值。

需要加密的字符串。

如果可选的参数被设定为TRUE, sha一的这个摘要就会以长度是20个字符的原始格式返回。如果不被设定为True, 那么返回值就是一串长度为40个字符的十六进制数字。

返回的值为字符串,其内容是经过计算之后所得到的sha1散列值。

实例:

<!--?php</p-->

echo sha1("leohc");

echo "


";

echo sha1("leohc",true); //加了ture 生成的是:n��7�_#B���[�BѰ�9j

echo "


";

echo sha1("admin");

echo "


";

echo sha1(md5("admin",true));

?>

四、URL编码加密技术

1.( $str):编码URL字符串

$str:要编码的字符串

返回结果是一个字符串, 这个字符串是经过编码处理以后得到的。

2.( $str):解码已编码的URL字符串。

$str:要解码的字符串

返回值, 指的是将字符串解码之后所返回的那一坨结果。

在编码这个规定里面, 凡是看到有不属于字母、也不属于数字的字符, 还得是连字符、下划线、句号或者是横杠这三个以外的东西, 都要把它换掉, 换的方法是用一个百分号, 再跟上两个用十六进制写出来的数字。如果是空格的话, 就简单地把它变成加号好了。

3.( $str):按照对URL进行编码

$str:要编码的URL

返回的内容是一个字符串, 其中的空格会被替换成百分之二零的编码形式。

4.对于那个用括号和钱符号加上str括起来的变量, 它的作用是将那些已经被编码过的网址字符串进行还原。

你要解码的那个网页地址, 需要把这串字符当成输入参数。

返回值是字符串, 在这个字符串里面, 所有跟着两位十六进制序列的百分号百分号的部分, 都会被替换成原义字符。

实例:

<!--?php</p-->

/*

原码 转换编码

? %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.( $data):使用对data进行编码

数据, $data: 是需要被执行编码处理的操作对象。

2.( $data

布尔值设为假, 具体数值等于零。

对于使用了MIME这种方式来编码数据的, 进行解这样的码的处理。

如果现在拿到的这一些输入数据, 它实际上已经超出了规定的字母表范围了, 那就请直接返回一个false值。

实例:

<!--?php</p-->

$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

明文首先是要被送进去的, 然后呢, 它要通过单向散列算法这个环节的, 最后才到密文的。

2.对称散列加密

对称加密技术介绍:

所谓的对成加密, 指的是这样一种情况, 也就是说在进行数据加密的时候使用的密钥, 以及在进行数据解密的时候使用的密钥, 它们是同一个密钥, 或者是可以通过彼此互相推算出来的。

salt 密钥

↓↓

明文数据会进入加密算法的处理流程, 从而转换成密文形态, 随后密文数据需要被传递到解密算法中进行处理, 以此重新恢复出初始的明文内容。

3.就是那种加密办法, 叫做非对称散列加密。

非对称加密, 还有它的解密环节, 这两个事儿用不着是同一个密钥。其中一个密钥是可以对外头公布的, 这个被称为公钥, 另一个就只有一手所有者心里清楚。

加密密钥, 解密密钥。

↓↓

明文数据会进入加密算法的处理流程, 从而转换成密文形态, 随后密文数据需要被传递到解密算法中进行处理, 以此重新恢复出初始的明文内容。

希望这些内容可以在开发的过程当中起到一定的帮助作用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 22:12:26

气源含水对气液增压器的故障影响有多大?选台湾钰腾从根源规避风险

很多机加工车间都有一个常年被忽略的隐形隐患&#xff1a;气源里的水。尤其是南方梅雨季、北方冬季温差大的时段&#xff0c;空压机出来的压缩空气里混着大量冷凝水&#xff0c;哪怕装了普通的油水分离器&#xff0c;也很难完全过滤干净。这些混在气源里的水顺着管路钻进气液增…

作者头像 李华
网站建设 2026/10/18 3:03:52

OSI与TCP/IP分层模型实战:从理论到网络故障排查

计算机网络这门课&#xff0c;很多人是把它当“死知识”来背的&#xff1a;OSI七层是哪七层、TCP/IP有哪几个协议、三次握手发几个包……背得滚瓜烂熟&#xff0c;一旦真碰上网络故障&#xff0c;照样不知道从哪下手。我带过的不少新人都有这个问题。究其原因&#xff0c;是没有…

作者头像 李华
网站建设 2026/10/16 6:55:25

视觉SLAM第7讲|特征点法、对极几何与位姿求解全梳理

视觉SLAM第7讲&#xff5c;视觉里程计(上)&#xff1a;特征点法、对极几何与位姿求解全梳理 如果说前面几讲的刚体运动、李群李代数是SLAM的「数学工具包」&#xff0c;那从这一讲开始&#xff0c;我们就正式进入视觉SLAM的核心前端模块——视觉里程计&#xff08;Visual Odome…

作者头像 李华
网站建设 2026/10/19 19:33:49

Linux auditd系统审计实战:规则配置与安全事件追踪方法

auditd安装与基本配置 auditd是Linux内核审计子系统的用户空间守护进程&#xff0c;提供系统级安全审计能力。服务器安全加固场景中&#xff0c;auditd能够记录文件访问、系统调用、用户权限变更等关键操作&#xff0c;是合规审计和入侵检测的基础组件。 在CentOS/RHEL系统上…

作者头像 李华
网站建设 2026/10/21 6:25:36

Claude Haiku 5.5 上线,小模型开始承接量产调用|2026年10月09日

今天技术圈最值得拆的&#xff0c;不是「模型又大了多少」&#xff0c;而是三件工程账同时被摊开&#xff1a;Anthropic 把 Claude Haiku 5.5 的输入价格压到每百万 token 0.10 美元[① MarkTechPost]&#xff1b;一项在生产环境完成的按调用点评估显示&#xff0c;把每个调用点…

作者头像 李华