<?php
functionencode_file_contents($filename){
$type=strtolower(substr(strrchr($filename,'.'),1));
if('php'==$type&&is_file($filename)&&is_writable($filename)){//如果是PHP文件并且可写则进行压缩编码
$contents=file_get_contents($filename);//判断文件是否已经被编码处理
$contents=php_strip_whitespace($filename);
//去除PHP头部和尾部标识
$headerPos=strpos($contents,'<?php');
$footerPos=strrpos($contents,'?>');
$contents=substr($contents,$headerPos+5,$footerPos-$headerPos);
$encode=base64_encode(gzdeflate($contents));//开始编码
$encode='<?php'." eval(gzinflate(base64_decode("."'".$encode."'"."))); ?>";
returnfile_put_contents($filename,$encode);
}
returnfalse;
}
//调用函数
$filename='dam.php';
encode_file_contents($filename);
echo"OK,加密完成!"
?>
❷ PHP如何使用自定义key实现对数据加密解密
伸手党。。。
搜搜 PHP sodium 这个扩展
❸ 求大佬,解决一个php的自定义加密函数的
md5
按MD5算法,从字符串得到32位的HASH。
urlencode
把URL做成可以放进地址栏的形式
urldecode
把放进地址栏的东西还原成URL
base64_encode
按BASE64算法,把字符串(可以是二进制的)加密,得到长度与输入有关,比输入长很多,得到的字符范围是可显示的。
base64_decode
按BASE64算法解密
ord
取一个字符串的第一个字母的ASCII代码
chr
从一个数得到一个字符串,长度1,内容为以这个数为ASCII代码的字符
explode
以第一个参数为分段符号,把第二个参数切断,得到一个数组的字符串
implode
以第一个参数为连接符号,把第二个参数(一个数组的字符串)连接成一个字符串
count
返回字符串的长度
substr
取字符串的一部分
srand
设置随机种子,同样的随机种子按照同样的顺序取到的随机数必然相同,在PHP里一般用于DEBUG。在 PHP 较早版本中,必须在使用rand()之前调用 srand() 播下随机数种子(以时间为srand的参数)。自 PHP 4.2.0 不再需要这样做了(直接用rand()就好)。
❹ 怎么对PHP文件加密 - 技术问答
php的所有加密,都需要对应解密的,这个是php语言(解释语言)特性决定的。你可以考虑使用eaccelerator进行加密,这个有加密跟加速的功能,使用方式google一下就出来了
❺ 如何对PHP文件进行加密
php加密平台自开通以来已加密了670367个php文件,总数据大小5823.04 MB2015-04-18更新:PHP在线加密Beta版支持命名空间加密,即php源码中有namespace的文件加密。2015-01-13维护:修复PHP5.5及以上php版本更好支持php加密(免费版已不更新,不修复)
php授权用户动态简化,只记录授权变化状态2014-12-09新增自定义授权错误信息提示(以前为白屏)2014-06-22新增支持heredoc和nowdoc语法结构的字符串2014-03-24修复部份代码中使用__FILE__不兼容的BUG2013-09-02修改:php免费加密后版权信息中增加中文声明2013-08-01新增功能:授权版可锁定php文件加密的文件名,php文件加密后不允许更改文件名。此功能配合锁定域名功能效果更佳。
修复:部份环境中获取不到服务器IP地址2013-06-20维护:常规更新维护,PHP加密代码小调整。2013-05-12修改:重写授权版的PHP加密算法,提高对代码的保护。2013-04-11调整:发现有个别用户使用我们免费的php加密平台对php源码加密后作为非法用途,因此把免费版对上传的php文件大小调整为50K。2013-03-11修改:为了加强付费授权版的使用安全,把免费版和付费授权版的算法分开处理。以后升级过程中主要针对付费授权版进行升级,免费版只做BUG修复处理。2013-02-01修改:免费版的版权信息中不再显示内核更新日期。
修改:编码加强混淆程度2013-01-07修改:php加密后的代码中去除“PHPJM_”标志性字符。
新增:先对php源码压缩后再加密,减小加密后的php文件大小
修复:php源代码中的php标签只有<?而没有?>时的BUG2012-12-11新增功能:授权版可锁定在某个日期段内运行,可将您的代码以试用方式进行发布。
修改:不再限制加密后的文件以.php为扩展名运行,支持以任何扩展名保存加密后的文件。
修复:自定义版权信息乱码BUG2012-11-14PHP在线加密平台上线2012-11-06完成PHP加密核心算法代码。
❻ PHP加密代码怎么写!
<?
function base_key_encode($txt,$key){
$txt=base64_encode($txt);//先将txt进行base64编码转换
$tmp="";//用来存贮通过key加密后的值
for($i=0;$i<strlen($txt);$i++){
$z=$txt[$i];
//echo "z=".$z."<br>$i<hr>";
for($j=0;$j<strlen($key);$j++){//将txt的第i个字符与key的每一个字符进行异或运算
// echo "key[j]=".$key[$j]."<br>";
// echo "z=".$z."<br>";
$z=$z ^ $key[$j];
}
$tmp.=$z;
//echo "<hr>";
}
return $tmp;
}
function base_key_decode($txt,$key){
//echo "txt=".$txt."<br><hr>";
$m=strlen($key)-1;//算出key的长度
for($i=0;$i<strlen($txt);$i++){
$z=$txt[$i];
//echo "z=".$z."<br>$i<hr>";
for($j=$m;$j>=0;$j--){//将txt的第i个字符与key的每一个字符进行异或运算,顺序变为key的最后一位字符开始
//echo "j=".$j."<br>";
$z=$z ^ $key[$j];
//echo "z=".$z;
}
$tmp.=$z;
}
$tmp=base64_decode($tmp);
return $tmp;
}
$txt="123test";
echo $txt;//输出原始串
echo "<br>";
echo base_key_encode($txt,"key");//通过key加密后的串
echo "<br>";
echo base_key_decode(base_key_encode($txt,"key"),"key");//解密后的串
?>
有问题可以网络HI我
觉得好的话,给加点分吧,嘻嘻..
❼ php接口怎么加密啊
你说的加密应该有两种层面 第一是接口数据的加密 第二是访问接口合法性的验证
针对第一种你可以了解下RSA非对称加密方式 对请求接口参数和数据回传进行加密
第二种可以使用签名验证或者自定义token的方式 自定义token相对会比较简单
❽ 如何给编写的PHP程序加密
你可以去下载一个
SourceCop for PHP
是一款 Windows 平台应用程序,你可以使用它加密你的 PHP 源代码
另外,你也可以限制加密后的 PHP 脚本代码运行于指定的 IP 或设定脚本代码的到期时限。
程序特征
* 独特和非常简单的程序界面
* 加密你的 PHP 源代码
* 不需要安装在服务器上
* 方案非常容易操作
* 原始代码备份选项
* 单击进行加密
* 加密后的脚本代码可以运行于任何平台和 PHP 的大部分版本
其实PHP没必要加密 加密怎么都会对你程序有影响
❾ php代码怎么加密最好,不能破解的那种
无论怎么混淆,它最终都是靠执行eval来运行其代码的。
所以我们只要在php中加载runkit扩展,启用runkit.internal_override选项,然后另写一个php文件来rename掉eval,然后自己实现一个function eval($code) {echo $code;},然后include这个文件。接着只要访问一下那个文件,这个加密的文件就会自己输出自己解密后的代码了。
http://php.net/manual/zh/function.runkit-function-rename.php
这种解密的思路称为“通过劫持eval破解程序加密”。
❿ php怎么实现加密简单的那种 而且用的时候不需要解密
将整个代码进行加密这个玩意估计还没人想过
因为需要将代码本身保密化的只有一些需要在本地运行的软件。想php这样运行在服务器端的,除非人家黑了你的服务器将代码直接考出来或者你讲代码交给了客户,否则不会有人能看到你的源代码的。
楼主这个问题我也想过,我是怕给客户做完以后,人家拿走用去了,不给钱。
大多数人都会给自己的网站流一个“后门”,这个后门只有网站开发者自己知道,必要的时候通过后门进入,强制关闭网站就可以了。
以前我还干过一件蛋疼的事,就是用java的class和C的dll,利用这两种文件的不可逆编译性。将一些核心的加密和解密算法,用java写好后,编译成class文件或者用C写好,编译成dll文件,然后让php调用。但是弄起来很蛋疼,尤其是class,需要一个什么javaBridge的东西。但是目前各种逆编译手段的完善,最快被干掉的就是class。似乎现在部分dll文件都被干掉了。