最新消息:七维网络改版啦,域名www.7dwww.com

php文件base64加密与解密

未分类 sevennet 2382浏览

有一些PHP系统为了版权的考虑或者想隐藏一些代码都会把代码进行加密,今天主要说一下最常见的base64_code加密和解密

加密

string base64_encode ( string $data )

使用 base64 对 data 进行编码。

设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。

Base64-encoded 数据要比原始数据多占用 33% 左右的空间。

 

解密

string base64_decode ( string $data [, bool $strict = false ] )

对 base64 编码的 data 进行解码。

参数

data  —  编码过的数据。

strict  —  如果输入的数据超出了 base64 字母表,则返回 FALSE。

 

用base64进行加密时经常会用urlencode来同时使用,比如:

 

$url = "http://www.7dwww.com七维网络";
$c_url = urlencode($url);
$jm_url = base64_encode(urlencode($url));

echo $url."<br>";
//输出 http://www.7dwww.com七维网络
echo $c_url."<br>";
//输出 http%3A%2F%2Fwww.7dwww.com%E4%B8%83%E7%BB%B4%E7%BD%91%E7%BB%9C
echo $jm_url."<br>";
//输出 aHR0cCUzQSUyRiUyRnd3dy43ZHd3dy5jb20lRTQlQjglODMlRTclQkIlQjQlRTclQkQlOTElRTclQkIlOUM=

urlencode先对特殊字符和汉字进行一次转换,再用base64再次加密。

因为加密之后的代码是无法运行的,所以要想让加密之后的代码能够运行,就需要先进行解密。

我们经常会看到的eval(base64_decode(“加密之后的代码”))就是运行的方式,如果只是一次加密我们只需要把eval改成echo或者exit就可以让源代码显示出来。

在实际的应用中还会用到混淆,多层加密,让你解密更加的麻烦。

转载请注明:七维网络 » php文件base64加密与解密