PHP免扩展加密近几年非常流行,今天就给大家介绍一下基本的加密原理。
PHP源码:
<?php echo 'hello by phpjiami.com'; ?>
我们对些代码码加密,所使用为:eval,base64_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上传必须开启二进制方式.