您现在的位置是:首页 > 其他

李清波 2017-03-24 其他 4675 复制当前网址

PHP免扩展加密(混淆加密)的基本原理(一)

PHP免扩展加密近几年非常流行,今天就给大家介绍一下基本的加密原理。


PHP源码:

<?php
echo 'hello by phpjiami.com';
?>

我们对些代码码加密,所使用为:evalbase64_decode,base64_encode


EVAL:

定义和用法

eval() 函数把字符串按照 PHP 代码来计算。

该字符串必须是合法的 PHP 代码,且必须以分号结尾。

如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。

base64_decode,base64_encode

则是完成BASE64的加密及解密.


第一层处理,完成代码的执行:

<?php
eval("echo 'hello by phpjiami.com';");
?>


第二层完成加密:

<?php
eval(base64_decode("ZWNobyAnaGVsbG8gYnkgcGhwamlhbWkuY29tJzs="));
?>

先对 echo 'hello by phpjiami.com'; 进行  base64_encode,得到:ZWNobyAnaGVsbG8gYnkgcGhwamlhbWkuY29tJzs= 然后再使用 base64_decode 还原base64数据,最后通过eval来执行.

这样我们就实现了简单的加密,再复杂的加密过程我们下次再说。


如果是Linux服务器,当加密以后不能正常访问网站,一般由于加密过的PHP文件采用二进制方式保存,所以FTP上传必须开启二进制方式.

文章来源:http://liqingbo.com/blog-1323.html

评论