用于PHP的循环中的Md5

用于PHP的循环中的Md5,php,mysql,for-loop,hash,md5,Php,Mysql,For Loop,Hash,Md5,我有一个示例用户数组的for循环,我想md5密码,但问题是,它将密码散列两次。我只想要一次md5($\u POST[2]) 而不是 ee11cbb19052e40b07aac0ca060c23ee 我的解决办法是 for ($y = 1; $y < $num_fields; $y++) { $password = md5($_POST[2]); $_POST[2] = $password; return $_POST[2

我有一个示例用户数组的for循环,我想md5密码,但问题是,它将密码散列两次。我只想要一次
md5($\u POST[2])

而不是

ee11cbb19052e40b07aac0ca060c23ee 
我的解决办法是

   for ($y = 1; $y < $num_fields; $y++) {
          $password = md5($_POST[2]);
          $_POST[2] = $password;
          return $_POST[2];
            }
($y=1;$y<$num_字段;$y++)的
{
$password=md5($_POST[2]);
$\u POST[2]=$密码;
返回$_POST[2];
}

但是我不希望
返回$\u POST[2]并在循环内中断循环,以便于mysql插入。所以我的问题是,如何在循环中使用md5一次而不返回,并获得唯一的md5值?

您不需要循环。您不使用
$y
变量。条件中的变量
$num_fields
使循环运行两次(对于
$y
等于1和2)

这应该满足您的期望:

user([userid, username, password]); 
$password = md5($_POST[2]);
$_POST[2] = $password;
更新 如果出于某种原因需要该循环,只需在循环之前创建md5即可。我将
$y
的初始化更改为0,因为当
$num\u fields
设置为3时,循环三次更为重要。但你可以有我从样品中看不出的理由

user([userid, username, password]); 

$password = md5($_POST[2]);
$_POST[2] = $password;
$num_fields = 3;

for ($y = 0; $y < $num_fields; $y++) {
    // Anything you wanted to loop
}
user([userid,username,password]);
$password=md5($_POST[2]);
$\u POST[2]=$密码;
$num_字段=3;
对于($y=0;$y<$num_字段;$y++){
//任何你想循环的东西
}

正如@nitix所说,md5不再是储蓄。但是,如果它只是为了学习如何创建登录名或不需要高安全性的项目,那么也没关系。

为什么在这里循环并尝试使用哈希而不是md5。
md5()
不再安全,请改用
password\u hash()
pasword\u verify()
md5()
现在很容易解密。@Nytrix这只是为了学习login@MarkValenzuela如果这是可行的,你能接受提供的答案吗?你知道,这个网站就是基于这个。
user([userid, username, password]); 
$password = md5($_POST[2]);
$_POST[2] = $password;
user([userid, username, password]); 

$password = md5($_POST[2]);
$_POST[2] = $password;
$num_fields = 3;

for ($y = 0; $y < $num_fields; $y++) {
    // Anything you wanted to loop
}