不需要加密,也无法加密。可以这么说,如果数据库和程序是在同一服务器,及数据库的地址是localhost,那么无需加密,因为加密了数据库并不能自己解密,而且只要网站或者服务器不被攻下,没有加密的必要。
数据库和php程序在不同的服务器,就是说你在操作数据库的时候需要远程操作,这样的话需要传输数据库账号密码,可以在本地加密后传输,然后在数据库服务器进行解密后,用原始的账号密码去操作数据库。
Ⅱ php登陆页面密码加密
你这段代码是客户端提交页面时,使用JavaScript加密。
所以你需要一个hex_md5()的js函数。
与php没有任何关系。
Ⅲ php怎么在post前加密用户名 密码
用户名 密码 都加上一个用户的注册时间 然后md5(); 这样客户端不能知道真正的信息,但是你可以知道。 前提是你必须记录下这个用户名的加密值来进行用户识别。
Ⅳ php账号密码什么加密方式比较好
一般使用非对称加密,32位 md5足够了。
当验证密码对不对时,使用密码明文 md5加密后与密文对比,一致则说明密码是对的
Ⅳ PHP如何对用户密码进行加密
第一种方法:可以使用如下方法对用户密码进行加密:MySqlSET user@localhost PASSWORD=PASSWORD(”Password”);
第二种方法:可以使用MYSQL的 PASSWORD函数进行用户密码的加密。例如:Insert into user(password, ……..) values (PASSWORD(”$password”,………));
Ⅵ php实现密码加密
在注册时进行$pass=md5($pass)就行了呀!登陆也是同样的道理,先把用户的密码进行加密一次再和数据库里面的密码进行比较。比如:$pass=md5($_POST[pass])
Ⅶ 请教老师PHP调用WEBAPI时用户密码如何加密
如果是在客户端请求接口,可以自己写加密算法,数据用可逆加密,比如base64,或者转成ascii码再加减乘除,在算法中引入一个用不可逆加密处理的密钥,不可逆的加密包括md5,取余数等方式。但是你得保证接口端那边能解开你的加密。不过话说回来,为什么要在客户端请求接口呢?客户端请求接口,再怎么加密都不安全。所以建议还是在服务端请求,服务端请求接口加不加密都无所谓了,如果非要加密,可参考上面说的加密方式。
Ⅷ 用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写会员注册 密码加密问题
数据被截获是无法避免的,除非用SSL加密。
比较安全的方法可以这样:
1. 数据正常提交至lr.php
2. 获取一个当前时间time()
3. 将密码组合time()后md5
4. 将组合后的密码md5值和之前获取的time()一起存入数据库。
当今后需要登录时首先获取用户名对应的time(),再组合上密码进行md5,和数据库内的密码md5对比。
Ⅹ php密码加密问题
老外写的,我上学那会研究了一个星期,现在早忘光了。还是拿来主义好!
<?php
function aes128cbcEncrypt($key, $text) {
/* Open the cipher */
$td = mcrypt_mole_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
if (! $td) {
throw new GeneralSecurityException('Invalid mcrypt cipher, check your libmcrypt library and php-mcrypt extention');
}
// replaced MCRYPT_DEV_RANDOM with MCRYPT_RAND since windows doesn't have /dev/rand :)
srand((double)microtime() * 1000000);
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
/* Intialize encryption */
mcrypt_generic_init($td, $key, $iv);
/* Encrypt data */
$encrypted = mcrypt_generic($td, $text);
/* Terminate encryption handler */
mcrypt_generic_deinit($td);
/*
* AES-128-CBC encryption. The IV is returned as the first 16 bytes
* of the cipher text.
*/
return $iv . $encrypted;
}
function aes128cbcDecrypt($key, $encrypted_text) {
/* Open the cipher */
$td = mcrypt_mole_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
if (is_callable('mb_substr')) {
$iv = mb_substr($encrypted_text, 0, Crypto_CIPHER_BLOCK_SIZE, 'latin1');
} else {
$iv = substr($encrypted_text, 0, Crypto_CIPHER_BLOCK_SIZE);
}
/* Initialize encryption mole for decryption */
mcrypt_generic_init($td, $key, $iv);
/* Decrypt encrypted string */
if (is_callable('mb_substr')) {
$encrypted = mb_substr($encrypted_text, Crypto_CIPHER_BLOCK_SIZE, mb_strlen($encrypted_text, 'latin1'), 'latin1');
} else {
$encrypted = substr($encrypted_text, Crypto_CIPHER_BLOCK_SIZE);
}
$decrypted = mdecrypt_generic($td, $encrypted);
/* Terminate decryption handle and close mole */
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
/* Show string */
return trim($decrypted);
}
define('Crypto_CIPHER_BLOCK_SIZE',16);
$pass = '123456';//你的密码
$text = 'this is text';//随便的点文字 生成密钥用
$a= aes128cbcEncrypt($pass,$text);
echo base64_encode($a)."/r/n";
$b= aes128cbcDecrypt($pass,$a);
echo $b."/r/n";
$c= aes128cbcDecrypt($pass,base64_decode(base64_encode($a)));//最终密钥 $c
echo $c."/r/n";
?>