php连接数据库怎么加密 php连接数据库怎么加密的

php源码怎么加密一、无需任何PHP扩展的加密
此类加密的代表有 威盾PHP加密专家、PHP在线加密平台、PHP神盾 等 。
此类加密都是以eval函数为核心 , 辅以各式各样的字符串混淆和各种小技巧 , 来达到加密目的(更准确的说,应该算是混淆) 。下面以一个简单的hello world为例来说明此类加密的大体过程 。
?php
echo "hello world";
首先 ,我们把这段代码变为通过eval执行的
?php
eval('echo "hello world";');
然后,我们再进行一些转换,比如说base64编码
?php
eval(base64_decode('ZWNobyAiaGVsbG8gd29ybGQiOw=='));
就这样子,我们的第一个加密过的php代码新鲜出炉了 。。。
上面这个例子非常非常简单 , 基本上任何有一点php语言基础甚至别的语言基础的人都能轻松的看懂并解密 。因此,我们需要一些方法让这个加密至少看上去不是那么简单 。
二、同时采用多种编码函数
除了刚才提到的base64,php还有许多内置的编码函数,例如urlencode、gzcompress等 。把这些函数混合使用可以提高解密的复杂度(不是难度) , 此外还可以使用strtr来制定自己的编码规则 。使用变量来代替函数名 使用特定字符来命名变量
这儿所说的特定字符是一些极其相似的字符,如I和1,0和O 。试想一下满屏都是O和0组成的变量,并且每一个的名字长度都在10个字符以上 。。。判断文件自身是否被修改
这个功能看似容易,对文件做一下摘要再进行下对比即可知道是否被修改了,但是如何才能在文件内把摘要嵌入进去呢?我没有找到完美的方案,但一个变通的方案还是很容易的 。。。
?php
$code = substr(file_get_contents(__FILE__), 0, -32);
$hash = substr(file_get_contents(__FILE__), -32);
if (md5($code) !== $hash) {
exit('file edited');
}
ACBC41F727E00F85BEB3440D751BB4E3
当然 , 你可以把这个校验字符串放在别的位置来提高破解的难度 。有了这个 , 别人想破解你的程序可就得多费一点功夫了 。。。
既然知道了原理,那解密自然也就非常简单了 , 总体来说就三步:
把eval替换为输出,比如echo 根据编码规则把字符串还原 如果文件未解密完全,从第一步开始继续
当然,实际上的解密过程并没有这么简单,比如说如果加密的时候使用了gzcompress,那得到的数据将会包含一些二进制数据 , 而采用一般的文本编辑器打开时这些数据都会显示为乱码 , 并且在保存时丢失部分数据 。解决方法很简单也很麻烦 , 那就是使用二进制(16进制)方式打开、修改和保存 。
用php将密码存入数据库,用什么方法进行加密?题主你可以使用 md5 或者 sha1 进行初步处理php连接数据库怎么加密,但为了更加安全,请你同时加上两个 salt,一个静态 salt , 一个动态的 salt 。以 md5 为例php连接数据库怎么加密:\x0d\x0a假设通过 POST 传来的密码为 $_POST['password'],在存入 DB 前先进行如下的操作php连接数据库怎么加密:\x0d\x0a$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);\x0d\x0a\x0d\x0a为了保证动态 salt 的唯一性,可以这样操作:\x0d\x0a$dynamicSalt = hash('md5', microtime());\x0d\x0a\x0d\x0a对于动态的 salt 可以与生成的密码一起保存在 DB 中,而静态 salt 则可以直接放在类文件中(例如定义为一个静态属性即可) 。\x0d\x0a首先谢谢题主采纳了我的答案 , 但是我之前的回答并不是最佳答案,之所以有此加密的想法源于自己所读的源码可能比较老 , 所以并没使用上较新版本的加密方法,例如 bcrypt等 。\x0d\x0a此外 , 第二点,感谢评论中几位前辈的提点,已经明白设置静态 salt 的意义并不大,生成一个较长的动态 salt 已然可以解决问题 。\x0d\x0a\x0d\x0aLZ应该采用加盐HASH 。\x0d\x0a如何“腌制”密码呢php连接数据库怎么加密?\x0d\x0a=_,=\x0d\x0a正确的格式应该是,用户password+动态的salt\x0d\x0a动态的salt不能像2L所说的,使用microtime , 因为时间在某些情况下不够随机,而且是可能被猜解的 。\x0d\x0a这里推荐一个我用的加盐HASH\x0d\x0a$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));\x0d\x0a$password=sha1($register_password.$salt);\x0d\x0a\x0d\x0a解释:\x0d\x0a首先使用mcrypt , 产生电脑随机生成的,专门用户加密的随机数函数 。\x0d\x0a第二步,把得到的随机数通过base64加密,使其变长并且不利于猜解 。\x0d\x0a第三步,把得出的盐拼接到密码的后面,再对其使用sha1进行哈希\x0d\x0a再把password存入到用户的数据库 。\x0d\x0aPS:为何不用静态的salt?没有必要,使用一个动态随机足够长的盐足矣 。\x0d\x0a为何不用MD5?因为长度不够 。\x0d\x0a为何没有使用多次HASH?因为这样反而容易发生碰撞 。\x0d\x0aHASH好之后怎么使用“腌制”好的密码?\x0d\x0a用户注册-提交密码-产生salt-腌制好的密码存入数据库-salt存入数据库 。\x0d\x0a用户登录-提交密码-调用salt接到提交密码的后面-进行HASH-调用之前注册腌制好的密码-对比HASH值是否和这个密码相同

推荐阅读