php加密码
前台加密
后台接收到后
在和盐值拼接
在加密
存入数据库
我用md5举例
前台:md5(pwd);
//前台找一个js加密扩展就行
后台:
$salt
=
mt_rand(100000,999999);
//随机盐值
$pwd
=
md5($_GET('pwd').$salt);
//这样双重加密后入库了
登录验证时
前台也记得加密哦
⑵ thinkphp 后台登陆密码加密传入密钥
后台登陆密码加密让敏验证设置:
相关函数核携:
控制器方坦氏枝法:
⑶ PHP输入密码才能访问这个页面的代码
给任意php页面增加一个密码保护,需要输入正确密码才能访问。
代码如下:
<?php
$adminkey = "123";/*设置密码*/
session_start();
if(@$_POST['password'] == $adminkey){
$_SESSION['login'] = md5($adminkey);
}
if($_SERVER['QUERY_STRING'] == "logout"){
$_SESSION['login'] = "";
header("location: " . $_SERVER['PHP_SELF']);
exit();
}
$html_login = <<<EOF
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
div{text-align:center; margin:0 auto;}
#loginform{width:230px;height:100px;background-color:#ffffff;box-shadow: 2px 2px 10px 1px #403f3f;}
</style>
</head>
<body>
<div id="loginform">
<div style="text-align:center; margin:260px auto 0px;">
<form action="" method="post">密码<input type="password" name="password" style="width:120px; margin-top: 35px;">
<input type="submit" value="登录" style="margin-left: 5px;">
</form>
</div>
</div>
</body>
</html>
EOF;
if(@$_SESSION['login'] != md5($adminkey)){
exit($html_login);
}
?> 这里加上要显示的内容文字或者代码。
(3)php加密码扩展阅读:
PHP双引号和单引号的区别
1、双引号解释变量,单引号不解释变量
2、双引号里插入单引号,其中单引号里如果有变量的话,变量解释
3、双引号的变量睁槐名后面必须要有一个非数字、字母、下划线的特殊字符,或者用讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误
4、双引号解释转义字符,单引号不解释转义字符,但是解释'和
5、能使单引号字符尽量使用单引号,单引渗纯号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号悉喊友则不需要判断)
⑷ PHP常用加密解密方法
作者/上善若水
1.md5(string $str,bool $flag = false);
$flag = false 默认返回32位的16进至数据散列值
$flag = true 返回原始流数据
2.sha1($string,$flag = false)
$flag = false 默认返回40位的16进至数据散列值
true 返回原始流数据
3.hash(string $algo,srting $str,bool $flag);
$algo : 算法名称,可通过hash_algos()函数获取所有hash加密的算法
如:md5,sha1等,采用md5,sha1加密所得结果和1,2两种方式结 果相同。
$flag = false 默认返回16进至的数据散列值,具体长度根据算法不同
而不同。
true 返回原始流数据。
4.crypt(string $str,$string $salt);
函数返回使用 DES、Blowfish 或 MD5 算法加密的字符串。
具体算法依赖于PHP检查之后支持的算法和$salt的格式和长度,当 然具体结果也和操作系统有关。比较结果采用 hash_equals($crypted,crypt($input,$salt));//且salt值相同
Password_verify($str,$crypted);
5.password_hash ( string $str, integer $algo [, array $options ] )
函数返回哈希加密后的密码字符串, password_hash() 是crypt()的 一个简单封装
$algo : 算法 PASSWORD_DEFAULT ,PASSWORD_BCRYPT
$options = [
“cost”=>10,//指明算法递归的层数,
“salt”=>“xxadasdsad”//加密盐值,即将被遗 弃,采用系统自动随机生成安全性更高
];
使用的算法、cost 和盐值作为哈希的一部分返回
Password_verify($str,$hashed);
6.base64_encode(string $str)
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层 传输,例如电子邮件的主体。base64_decode(string $encoded)
可以进行解码;
7.mcrypt_encrypt ( string $cipher , string $key , string $data ,
string $mode [, string $iv ] )
mcrypt_decrypt ( string $cipher , string $key , string $crypted ,
string $mode [, string $iv ] )
$ciper:加密算法,mcrypt_list_algorithms()可以获取该函数所有支持的算法
如MCRYPT_DES(“des”),MCRYPT_RIJNDAEL_128(“rijndael-128”);
$mode : 加密模式 ,mcrypt_list_modes()获取所有支持的加密模式,ecb,cbc
$key: 加密的秘钥,mcrypt_get_key_size ( string $cipher , string $mode )
获取指定的算法和模式所需的密钥长度。$key要满足这个长度,如果长 度无效会报出警告。
$iv : 加密的初始向量,可通过mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] ),
Iv的参数size:
通过mcrypt_get_iv_size ( string $cipher , string $mode )获取
Iv 的参数source:
初始向量数据来源。可选值有: MCRYPT_RAND (系统随机数生成 器), MCRYPT_DEV_RANDOM (从 /dev/random 文件读取数据) 和 MCRYPT_DEV_URANDOM (从 /dev/urandom 文件读取数据)。 在 Windows 平台,PHP 5.3.0 之前的版本中,仅支持 MCRYPT_RAND。
请注意,在 PHP 5.6.0 之前的版本中, 此参数的默认值 为 MCRYPT_DEV_RANDOM。
Note: 需要注意的是,如果没有更多可用的用来产生随机数据的信息, 那么 MCRYPT_DEV_RANDOM 可能进入阻塞状态。
$data : 要加密的字符串数据
⑸ PHP如何对用户密码进行加密
PHP如何对用户密码进行加密
第一种方法:可以使用如下方法对用户密码进行加密:Mysql>SET user@”localhost” PASSWORD=PASSWORD(”Password”);
第二种方法:可以使用MYSQL的 PASSWORD函数进行用户密码的加密。例如:Insert into user(password, ……..) values (PASSWORD(”$password”,………));
可以在一个PHP文件里面include另外一个PHP文件两次吗
是的,可以在一个PHP文件里面include另外一个PHP文件两次,被include的那个php文件也会执行两次,所以如果在这个文件里面定义的有一个class, 就会报出the class already defined的错误。
mysql的最长数据库名,表名,字段名可以是多长
数据库名字最长为64
数据表名字最长为64
字段名字最长为64
mysql_pconnect()和mysql_connect()有什么区别
两者的区别主要有两个:
1. 在进行数据库连接时,函数会先找同一个host, 用户和密码的persistent(持续的)的'链接,如果能找到,则使尺竖用这个链接而不返回一个新的链接。
2. mysql_pconnect()创建的数据库连接陵笑大在脚本执行完毕后仍然保留,可以被后来的代码继续使用,mysql_close()函升庆数也不会关闭mysql_pconnect()创建的链接。
;⑹ 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');
}
当然,你可以把这个校验字符串放在别的位置来提高破解的难度。有了这个,别人想破解你的程序可就得多费一点功夫了。。。
既然知道了原理,那解密自然也就非常简单了,总体来说就三步:
把eval替换为输出,比如echo 根据编码规则把字符串还原 如果文件未解密完全,从第一步开始继续
当然,实际上的解密过程并没有这么简单,比如说如果加密的时候使用了gzcompress,那得到的数据将会包含一些二进制数据,而采用一般的文本编辑器打开时这些数据都会显示为乱码,并且在保存时丢失部分数据。解决方法很简单也很麻烦,那就是使用二进制(16进制)方式打开、修改和保存。
⑺ 如何对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],完成。
⑻ 怎样给HTML/PHP网页增加密码验证
很简单 密码为123456 你可以在login.php里面改
index.html 将以下代码放入 <body></body>里面就可以
<form method="post" action="login.php">
密码: <input type="password" name="password"/><br>
<input type="submit" name="submit" value="登陆">
</form>
login.php 完整的login.php内容
<?php
$password = isset($_POST['password']) ? $_POST['password'] : '';
if($password == '123456'){
echo "<script>alert('登陆成功。');location.href='in.html';</script>";
//不需要提示 则把 alert('登陆成功。'); 删除掉
}else{
echo "<script>alert('密码错误 登陆失败。。');location.href='error.html';</script>";
//不需要提示 则去掉 同上
}
?>
OK 了 简单吧。
⑼ php下载了MySQL数据库后怎么设置账号和密码啊
php修改mysql数据库中的用户名和密码方法如下:
方法一
1、使用phpmyadmin,这是最简单的了,修改mysql库的user表,
2、不过别忘了使用PASSWORD函数。
方法二
1、使用mysqladmin,这是前面声明的一个特例。
2、mysqladmin -u root -p password mypasswd ,输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
3、把命令里的root改为你的用户名,你就可以改你自己的密码了。
4、当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin, 那么这种方法就是无效的。 而且mysqladmin无法把密码清空。
5、下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
1、mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
2、确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
3、在《mysql中文参考手册》里有这个例子,所以我也就写出来了。
4、注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
方法四
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
方法五
1、使用SET PASSWORD语句,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
2、也必须使用PASSWORD()函数,
3、但是不需要使用FLUSH PRIVILEGES。
方法六
1、使用GRANT ... IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';
2、这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。