0

如何在 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);

?>
4

5 回答 5

0

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

于 2013-05-20T08:47:25.173 回答
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 文件包含到您使用 encrypt 的位置

include(MCrypt.php);

然后使用

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

最后一件事不要忘记改变

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

必须是 16 个字符

于 2013-05-20T09:02:53.423 回答
0

我相信您的问题是处理密码以存储在数据库中的非常基本的方法。如果您可能已经在 Google 上搜索过,对此有很多看法。但是,这两个链接可能会有所帮助。

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

另一个这个问题

于 2013-05-20T08:53:04.493 回答
0

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

于 2013-05-20T08:45:13.980 回答
0

使用 mysql 加密,

AES_DECRYPT()    
AES_ENCRYPT()

对于 AES_ENCRYPT()

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

对于 AES_DECRYPT

SELECT   AES_DECRYPT(AES_ENCRYPT('mytext','mykeystring'),  
'mykeystring'); 
于 2013-05-20T11:11:08.923 回答