导航:首页 > 文档加密 > 静态加密php

静态加密php

发布时间:2022-05-07 15:51:17

php文件怎么加密不影响运行

php加密方式有很多,比如用zend,phpjm,威盾,都可以的,加密后不会影响运行

㈡ 如何给php代码加密

前台加密
后台接收到后
在和盐值拼接
在加密
存入数据库
我用md5举例
前台:md5(pwd);
//前台找一个js加密扩展就行
后台:
$salt
=
mt_rand(100000,999999);
//随机盐值
$pwd
=
md5($_GET('pwd').$salt);
//这样双重加密后入库了
登录验证时
前台也记得加密哦

㈢ php代码怎么加密最好,不能破解的那种

在使用PHP开发Web应用的中,很多的应用都会要求用户注册,而注册的时候就需要我们对用户的信息进行处理了,最常见的莫过于就是邮箱和密码了,本文意在讨论对密码的处理:也就是对密码的加密处理。
MD5
相信很多PHP开发者在最先接触PHP的时候,处理密码的首选加密函数可能就是MD5了,我当时就是这样的:
$password = md5($_POST["password"]);
上面这段代码是不是很熟悉?然而MD5的加密方式目前在PHP的江湖中貌似不太受欢迎了,因为它的加密算法实在是显得有点简单了,而且很多破解密码的站点都存放了很多经过MD5加密的密码字符串,所以这里我是非常不提倡还在单单使用MD5来加密用户的密码的。
SHA256 和 SHA512
其实跟前面的MD5同期的还有一个SHA1加密方式的,不过也是算法比较简单,所以这里就一笔带过吧。而这里即将要说到的SHA256 和 SHA512都是来自于SHA2家族的加密函数,看名字可能你就猜的出来了,这两个加密方式分别生成256和512比特长度的hash字串。
他们的使用方法如下:
<?php
$password = hash("sha256", $password);
PHP内置了hash()函数,你只需要将加密方式传给hash()函数就好了。你可以直接指明sha256, sha512, md5, sha1等加密方式。
盐值
在加密的过程,我们还有一个非常常见的小伙伴:盐值。对,我们在加密的时候其实会给加密的字符串添加一个额外的字符串,以达到提高一定安全的目的:
<?php
function generateHashWithSalt($password) {$intermediateSalt = md5(uniqid(rand(), true));$salt = substr($intermediateSalt, 0, 6);
return hash("sha256", $password . $salt);}
Bcrypt
如果让我来建议一种加密方式的话,Bcrypt可能是我给你推荐的最低要求了,因为我会强烈推荐你后面会说到的Hashing API,不过Bcrypt也不失为一种比较不错的加密方式了。
<?php
function generateHash($password) {
if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {$salt = '$2y$11$' . substr(md5(uniqid(rand(), true)), 0, 22);return crypt($password, $salt);
}
}
Bcrypt 其实就是Blowfish和crypt()函数的结合,我们这里通过CRYPT_BLOWFISH判断Blowfish是否可用,然后像上面一样生成一个盐值,不过这里需要注意的是,crypt()的盐值必须以$2a$或者$2y$开头,详细资料可以参考下面的链接:
http://www.php.net/security/crypt_blowfish.php更多资料可以看这里:
http://php.net/manual/en/function.crypt.phpPassword Hashing API
这里才是我们的重头戏,Password Hashing API是PHP 5.5之后才有的新特性,它主要是提供下面几个函数供我们使用:
password_hash() – 对密码加密.
password_verify() – 验证已经加密的密码,检验其hash字串是否一致.
password_needs_rehash() – 给密码重新加密.
password_get_info() – 返回加密算法的名称和一些相关信息.
虽然说crypt()函数在使用上已足够,但是password_hash()不仅可以使我们的代码更加简短,而且还在安全方面给了我们更好的保障,所以,现在PHP的官方都是推荐这种方式来加密用户的密码,很多流行的框架比如Laravel就是用的这种加密方式。
<?php
$hash = password_hash($passwod, PASSWORD_DEFAULT);对,就是这么简单,一行代码,All done。
PASSWORD_DEFAULT目前使用的就是Bcrypt,所以在上面我会说推荐这个,不过因为Password Hashing API做得更好了,我必须郑重地想你推荐Password Hashing API。这里需要注意的是,如果你代码使用的都是PASSWORD_DEFAULT加密方式,那么在数据库的表中,password字段就得设置超过60个字符长度,你也可以使用PASSWORD_BCRYPT,这个时候,加密后字串总是60个字符长度。
这里使用password_hash()你完全可以不提供盐值(salt)和 消耗值 (cost),你可以将后者理解为一种性能的消耗值,cost越大,加密算法越复杂,消耗的内存也就越大。当然,如果你需要指定对应的盐值和消耗值,你可以这样写:
<?php
$options = [
'salt' => custom_function_for_salt(), //write your own code to generate a suitable salt'cost' => 12 // the default cost is 10
];
$hash = password_hash($password, PASSWORD_DEFAULT, $options);密码加密过后,我们需要对密码进行验证,以此来判断用户输入的密码是否正确:
<?php
if (password_verify($password, $hash)) {
// Pass
}
else {
// Invalid
}
很简单的吧,直接使用password_verify就可以对我们之前加密过的字符串(存在数据库中)进行验证了。
然而,如果有时候我们需要更改我们的加密方式,如某一天我们突然想更换一下盐值或者提高一下消耗值,我们这时候就要使用到password_needs_rehash()函数了:
<?php
if (password_needs_rehash($hash, PASSWORD_DEFAULT, ['cost' => 12])) {// cost change to 12
$hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]);// don't forget to store the new hash!
}
只有这样,PHP的Password Hashing API才会知道我们重现更换了加密方式,这样的主要目的就是为了后面的密码验证。
简单地说一下password_get_info(),这个函数一般可以看到下面三个信息:
algo – 算法实例
algoName – 算法名字
options – 加密时候的可选参数
所以,现在就开始用PHP 5.5吧,别再纠结低版本了。
Happy Hacking

㈣ 对php文件加密,有哪些免费软件,怎么加密

php 源文件加密工具PHP Screw .

目前最新版本是1.3
网址
http://sourceforge.net/projects/php-screw/
我的安装环境
系统:Slackware 10
软件:Apache 1.3.31
PHP 4.3.7
以上环境全部是slackware 10默认安装后自带的。具体的Apache+php+mysql安装方法参照如下
支持php的Apache环境安装
获得软件
下载php_screw-1.3 (http://prdownloads.sourceforge.net/php-screw/php_screw-1.3.tgz?download)

安装
1.将获得的php_screw-1.3.tgz文件放到/usr/local目录下,然后用tar解压缩
tar zxvf php_screw-1.3.tgz

2.进入/usr/local/php_screw-1.3目录开始安装
cd /usr/local/php_screw-1.3
phpize
./confiugre

3.设置自己用来加密的密码
vi my_screw.h

-- Please change the encryption SEED key (pm9screw_mycryptkey) into the
values according to what you like.
The encryption will be harder to break, if you add more values to the
encryption SEED array. However, the size of the SEED is unrelated to
the time of the decrypt processing.

* If you can read and understand the source code, to modify an original
encryption logic will be possible. But in general, this should not
be necessary.

OPTIONAL: Encrypted scripts get a stamp added to the beginning of the
file. If you like, you may change this stamp defined by
PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must
be less than or equal to the size of PM9SCREW.

4.编译
make

5.拷贝moles目录下的php_screw.so文件到/usr/lib/php/extension目录下
cp moles/php_screw.so /usr/lib/php/extension/

6.编辑php.ini文件
在php.ini文件里,加入如下语句
extension=php_screw.so

7.重新启动Apache
/etc/rc.d/rc.httpd restart

8.编译加密工具
cd tools
make

9.将tools目录下加密用的工具screw拷贝到适当目录
cp screw /usr/bin/

经过以上的10步,就已经把php_screw-1.3全部安装完成了。并且现在的php也已经支持解释加密过的php文件了
使用
1.现写一个要加密的php文件。
我写了如下的一个用来测试php速度的compute.php文件

<?
$a=0;
$t=time();
for($i=0;$i<5000000;$i++)
{$a=$a*$i;}
$t1=time();
echo "<p>";
echo "It used:";
echo $t1-$t;
echo "seconds";
?>
将上面的compute.php文件放到/var/www/htdocs目录下。通过浏览器访问,将显示出php在大量计算时的速度(只能粗略估计一下)
2.将我们写的php文件加密
cd /var/www/htdocs/
screw compute.php

我们加密后,现在目录下的compute.php文件就是我们已经加密的了。而源文件被改名为compute.php.screw存放了。
我们现在再测试一下compute.php,看看能否正常使用?速度如何?
我比较了一下,加密前后的速度大概一样,基本没有太多的损失。

㈤ PHP代码如何加密


<?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动态加密函数能否改成静态加密

$nh1 = rand(0,64);
$nh2 = rand(0,64);
$nh3 = rand(0,64);
改成
$nh1 = 1;
$nh2 = 2;
$nh3 = 3

㈦ 用php将密码存入数据库,用什么方法进行加密

题主你可以使用 md5 或者 sha1 进行初步处理,但为了更加安全,请你同时加上两个 salt,一个静态 salt,一个动态的 salt。以 md5 为例:
假设通过 POST 传来的密码为 $_POST['password'],在存入 DB 前先进行如下的操作:
$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);

为了保证动态 salt 的唯一性,可以这样操作:
$dynamicSalt = hash('md5', microtime());

对于动态的 salt 可以与生成的密码一起保存在 DB 中,而静态 salt 则可以直接放在类文件中(例如定义为一个静态属性即可)。
首先谢谢题主采纳了我的答案,但是我之前的回答并不是最佳答案,之所以有此加密的想法源于自己所读的源码可能比较老,所以并没使用上较新版本的加密方法,例如 bcrypt等。
此外,第二点,感谢评论中几位前辈的提点,已经明白设置静态 salt 的意义并不大,生成一个较长的动态 salt 已然可以解决问题。

LZ应该采用加盐HASH。
如何“腌制”密码呢?
=_,=
正确的格式应该是,用户password+动态的salt
动态的salt不能像2L所说的,使用microtime,因为时间在某些情况下不够随机,而且是可能被猜解的。
这里推荐一个我用的加盐HASH
$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));
$password=sha1($register_password.$salt);

解释:
首先使用mcrypt,产生电脑随机生成的,专门用户加密的随机数函数。
第二步,把得到的随机数通过base64加密,使其变长并且不利于猜解。
第三步,把得出的盐拼接到密码的后面,再对其使用sha1进行哈希
再把password存入到用户的数据库。
PS:为何不用静态的salt?没有必要,使用一个动态随机足够长的盐足矣。
为何不用MD5?因为长度不够。
为何没有使用多次HASH?因为这样反而容易发生碰撞。
HASH好之后怎么使用“腌制”好的密码?
用户注册->提交密码->产生salt->腌制好的密码存入数据库->salt存入数据库。
用户登录->提交密码->调用salt接到提交密码的后面->进行HASH->调用之前注册腌制好的密码->对比HASH值是否和这个密码相同

㈧ 如何对PHP文件进行加密

对PHP文件进行加密,通常使用 Zend Guard,这是目前市面上应用比较多的PHP源码加密产品。

加密流程大概如下:
1、打开Zend Guard 5.5.0,[File]->[New]->[Zend Guard Project],新建项目。
2、点击 Next ,下一步。弹出如下对话框,选择要进行加密的源文件或文件夹

3、接下来是选择PHP的版本[与你web服务器上PHP的版本相对照],这里很重要,版本不对会出错,[Finish]完成项目的创建。
4、在Zend Guard左侧的Guard Explorer中,可以看到你新建的项目了,鼠标选中项目名称后,右键单击[Encode Project],完成。

㈨ 如何加密PHP文件

给文件加密,你可以在网络上下载超级加密3000 这是一款功能强大的文件和文件夹加密和保护软件。


超级加密3000有超快和最强的文件、文件夹加密功能、数据保护功能,文件夹、文件的粉碎删除以及文件夹伪装等功能。


超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。


超级加密3000还支持加密文件的临时解密,文件加密后,双击加密文件,在弹出密码输入对话框输入正确的密码选择确定,该加密文件就处于临时解密,文件使用完毕退出以后,它自动恢复到加密状态,无需再加密。


超级加密3000是一款不可多得的文件加密软件,您可以到网络上搜索超级加密3000给您的文件加密试试看。


㈩ php动态加密函数能否改成静态的

第3 4 5行这几个是生成随机数的
$nh1 = rand(0,64);
$nh2 = rand(0,64);
$nh3 = rand(0,64);
把他们改成固定的值
$nh1 = 1;
$nh2 =1;
$nh3 = 1;
这样,1是我自己设置的,你可以改成别的

阅读全文

与静态加密php相关的资料

热点内容
银行还房贷解压方法 浏览:700
服务器主机办公如何提速 浏览:919
cad打印为pdf 浏览:417
卖手表的app哪里可以卖 浏览:54
放管服务器怎么办理 浏览:629
手机号码如何加密 浏览:426
沈阳程序员培训学校 浏览:540
一般服务器如何配置 浏览:895
图片怎样加密发邮件 浏览:619
万虹电脑文件夹密码忘记了怎么办 浏览:633
rc108单片机 浏览:869
战雷如何改变服务器 浏览:676
mactelnet命令 浏览:54
压缩袋压缩了拿出来 浏览:401
安卓手机相机怎么设置权限 浏览:123
美女程序员转行做主播 浏览:673
办理解压房产 浏览:577
道路工程概论pdf 浏览:390
超棒数学速算法大全 浏览:939
小米易语言登录源码 浏览:32