使用php加密密码

1 php

我需要加密密码并将其存储在数据库中.我添加了一个代码"$ newpass = md5($ pass_word);" 在PHP文件中.但仍然无法正常工作

<?php
$hostname   =   "xxxx";
$username   =   "xxxx";
$password   =   "xxxx";
$dbName     =   "xxxx";
$user_name='';
$pass_word='';
$email='';
$errormsg='';
$subject='';
$message='';
$newpass='';
$conn       =   mysql_connect($hostname,$username,$password) or die(mysql_error());
mysql_select_db($dbName);
if(isset($_POST["submit"]))
{
$user_name=$_POST['usr'];
$address1=$_POST['addr1']; 
$address2=$_POST['addr2'];
$pass_word=$_POST['pswd'];
$newpass= md5($pass_word); 
$email=$_POST['email'];
if(empty( $user_name))
 {
   $errormsg='<br>enter the name S';

 }
if(trim($address1)=="")
 {
   $errormsg="<br>entre the address1 S";
   //echo $errormsg;
  } 
if(trim($address2)=="")
 {
   $errormsg="<br>entre the address2 S";
   //echo $errormsg;
  } 
if(trim($pass_word)=="")
 {
   $errormsg="<br>entre the password S";
   // echo $errormsg;
  } 
if(trim($email)=="")
{
   $errormsg="<br> enter the email S";
   // echo $errormsg;
}
$message="your username is".$user_name."your passwod is".$pass_word;
if(strlen($errormsg)==0)
{
mysql_query("INSERT INTO `xxx` ( `id` , `Name` , `Address1` , `Address2` , `password` , `email` )
VALUES (
'', '$user_name', '$address1', '$address2', '$newpass', '$email'
)")or die(mysql_error()); ;
echo $newpass;
echo "you have successfully registered ";

}
mail($email,$subject,$message);
}
?>
Run Code Online (Sandbox Code Playgroud)

这是我的php页面.

小智 5

输入可能有问题,因为语法是正确的.虽然md5散列并不是一种不好的做法,但它本身相对不安全.为了增加一小部分安全性,我通常会做这样的事情(hash salting):

<?php

function md5_salted($string,$salt){
    return md5( md5($string) . md5($salt) );
}

$salt = "wQfChpLYWFtiQV8d9Cao";
echo md5('userPassword'); // 221068207e125b97beb4e2d062e888b1
echo md5_salted('userPassword', $salt); // 07d9ffd0115e61fb22f857b7d252339c

?>
Run Code Online (Sandbox Code Playgroud)

值得注意的是:正如其他人所说,这是散列,而不是加密.如果您对加密感兴趣,请调查TLS/SSL.