如何使用PHP脚本加密密码

时间:2013-05-20 08:42:34

标签: php encryption cryptography

如何在PHP中加密密码,我使用下面的代码使用PHP代码将数据插入数据库,我可以存储新的成员数据,但现在我只想加密用户密码..

PHP脚本::

<?php
$objConnect = mysql_connect("localhost","root","");
$objDB = mysql_select_db("allah);


$strPassword = $_POST["sPassword"];
$strName = $_POST["sName"];


/*** Insert ***/
$strSQL = "INSERT INTO member (Password,Name)
VALUES (
'".$strPassword."',
'".$strName."',

)
";

$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
$arr['StatusID'] = "0";
$arr['Message'] = "Cannot save data!";   
}
else
{
$arr['StatusID'] = "1";
$arr['Message'] = "Register Successfully!";
}

mysql_close($objConnect);
echo json_encode($arr);

?>

5 个答案:

答案 0 :(得分:0)

您可以在php中使用crypt();。它支持多种哈希类型 http://php.net/manual/en/function.crypt.php
在进行数据库查询时使用预准备语句。 (PDO或mysqli)

答案 1 :(得分:0)

md5不再安全,从现在开始应该使用sha。看看http://php.net/manual/en/function.hash.php并使用sha256或sha512

答案 2 :(得分:0)

我相信你的问题是处理密码存储在数据库中的非常基本的方法。 如果你已经谷歌搜索,有很多意见。但是这两个链接可能会有所帮助。

检查this link以了解所有可用方法。您无需关注文章,但它提供了所有可能的密码管理方法。

另一个question

答案 3 :(得分:0)

我正在使用此课程进行加密。

http://www.androidsnippets.com/encrypt-decrypt-between-android-and-php

创建一个名为MCrypt.php的php文件

<?php 

        class MCrypt
        {
                private $iv = 'fedcba9876543210'; #Same as in JAVA
                private $key = '0123456789abcdef'; #Same as in JAVA


                function __construct()
                {
                }

                function encrypt($str) {

                  //$key = $this->hex2bin($key);    
                  $iv = $this->iv;

                  $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);

                  mcrypt_generic_init($td, $this->key, $iv);
                  $encrypted = mcrypt_generic($td, $str);

                  mcrypt_generic_deinit($td);
                  mcrypt_module_close($td);

                  return bin2hex($encrypted);
                }

                function decrypt($code) {
                  //$key = $this->hex2bin($key);
                  $code = $this->hex2bin($code);
                  $iv = $this->iv;

                  $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);

                  mcrypt_generic_init($td, $this->key, $iv);
                  $decrypted = mdecrypt_generic($td, $code);

                  mcrypt_generic_deinit($td);
                  mcrypt_module_close($td);

                  return utf8_encode(trim($decrypted));
                }

                protected function hex2bin($hexdata) {
                  $bindata = '';

                  for ($i = 0; $i < strlen($hexdata); $i += 2) {
                        $bindata .= chr(hexdec(substr($hexdata, $i, 2)));
                  }

                  return $bindata;
                }

        }
?>

并将你的php文件包含在你使用加密的地方

include(MCrypt.php);

然后使用

$mcrypt = new MCrypt();
#Encrypt
$encrypted = $mcrypt->encrypt("Text to encrypt");

最后一件事就是不要忘记改变

 $iv = 'fedcba9876543210'; 
 $key = '0123456789abcdef';

必须是16个字符

答案 4 :(得分:0)

使用mysql加密,

AES_DECRYPT()    
AES_ENCRYPT()

表示AES_ENCRYPT()

  SELECT   AES_ENCRYPT('mytext', 'mykeystring');  

表示AES_ENCRYPT

SELECT   AES_DECRYPT(AES_ENCRYPT('mytext','mykeystring'),  
'mykeystring'); 
相关问题