加密方法在较新的 php 版本中不起作用
Encryption method not working in newer php versions
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
require_once('ConnectUsers.php');
$email = $_POST['email'];
$password = $_POST['password'];
$encrypt_pass= encryptIt($password);
$sql="Update Subscriber_Login SET SubsPassword = '$encrypt_pass' where EmailId = '$email'";
if(mysqli_query($conn,$sql)){
echo 'password updated';
}
else{
echo 'oops! Please try again!';
}
function encryptIt( $q ) {
$cryptKey = 'mjn2Wb5wM46uBehwuabh';
$qEncoded = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $q,
MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
return( $qEncoded );
}
}
?>
那是我的代码,用于在我的网站上重置密码,这里我使用的加密方法似乎不适用于较新的 PHP 版本,如 7.2(当前 PHP版本),它在旧版本中运行良好,所以我现在能做什么,我现在无法更改加密方法,因为使用此加密的密码太多了..所以我想知道这个问题的解决方法。
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
require_once('ConnectUsers.php');
$options = array(
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
'cost' => 12,
);
$email = $_POST['email'];
$newPass = $_POST['newPass'];
$password = $_POST['password'];
$encrypt_pass= password_hash($password, PASSWORD_BCRYPT, $options);
$encrypt_newpass = password_hash($newPass , PASSWORD_BCRYPT, $options);
if(password_verify($password, $encrypt_pass)){
$sql = "Update Subscriber_Login Set SubsPassword = '$nePass' where EmailId =
'$email' and SubsPassword = '$pass'";
if(mysqli_query($conn,$sql))
{
echo "Password Updated";
} else {
echo "Password can not be updated";
}
} else {
echo "your current password does not match";
}
mysqli_close($conn);
}
?>
我刚刚这样做并解决了问题,我使用了其他人提到的 password_hash()..谢谢,现在我更安全了,因为如果你们...
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
require_once('ConnectUsers.php');
$email = $_POST['email'];
$password = $_POST['password'];
$encrypt_pass= encryptIt($password);
$sql="Update Subscriber_Login SET SubsPassword = '$encrypt_pass' where EmailId = '$email'";
if(mysqli_query($conn,$sql)){
echo 'password updated';
}
else{
echo 'oops! Please try again!';
}
function encryptIt( $q ) {
$cryptKey = 'mjn2Wb5wM46uBehwuabh';
$qEncoded = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $q,
MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
return( $qEncoded );
}
}
?>
那是我的代码,用于在我的网站上重置密码,这里我使用的加密方法似乎不适用于较新的 PHP 版本,如 7.2(当前 PHP版本),它在旧版本中运行良好,所以我现在能做什么,我现在无法更改加密方法,因为使用此加密的密码太多了..所以我想知道这个问题的解决方法。
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
require_once('ConnectUsers.php');
$options = array(
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
'cost' => 12,
);
$email = $_POST['email'];
$newPass = $_POST['newPass'];
$password = $_POST['password'];
$encrypt_pass= password_hash($password, PASSWORD_BCRYPT, $options);
$encrypt_newpass = password_hash($newPass , PASSWORD_BCRYPT, $options);
if(password_verify($password, $encrypt_pass)){
$sql = "Update Subscriber_Login Set SubsPassword = '$nePass' where EmailId =
'$email' and SubsPassword = '$pass'";
if(mysqli_query($conn,$sql))
{
echo "Password Updated";
} else {
echo "Password can not be updated";
}
} else {
echo "your current password does not match";
}
mysqli_close($conn);
}
?>
我刚刚这样做并解决了问题,我使用了其他人提到的 password_hash()..谢谢,现在我更安全了,因为如果你们...