php - 在base64_decode解码后密码为空
问题描述
我想以加密格式保存我的密码,所以,我在表中使用base64_encode保存了我的密码,当我曾经以解码格式再次获取我的密码时,使用base64_decode,它返回空白数据,请帮助我获得更好的解决方案。这是我的代码。
login_admin.php
<?php
include('connection.php');
if(isset($_POST['submit'])){
$email = $_POST['email'];
$password = decryptIt($_POST['pwd']);
print_r($password); die;
$_SESSION['email'] = $email;
$_SESSION['password'] = $password;
$admin= $_SESSION['email'];
$query = "SELECT * FROM `user` Where (email = '$email' && role_id = 'admin' )";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
if($row > 0){
if($admin == $row['email'] && $password == $row['password']){
header('location:dashboard1.php');
}
}
}
else{
echo "Login Failed";
}
?>
连接.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "example_user";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
function encryptIt( $q ) {
$cryptKey = 'qJB0rGtIn5UB1xG03efyCp';
return base64_encode( base64_encode($q).'+'.$cryptKey );
}
function decryptIt( $q ) {
$cryptKey = '+qJB0rGtIn5UB1xG03efyCp';
return base64_decode(str_replace($cryptKey, "",base64_decode( $q ))) ;
}
?>
解决方案
代码看起来不错,尝试在“decryptIt”方法中检查参数中的空值。
function decryptIt( $q ) {
if($q==''){
return array('error'=>1,"msg"=>"parameter cant be empyt")
}else{
$cryptKey = '+qJB0rGtIn5UB1xG03efyCp';
return array('success'=>1,"decrypt"=>base64_decode(str_replace($cryptKey, "",base64_decode( $q ))))
}}
推荐阅读
- python - 单个 DataFrame 中多行的交集
- php - 错误文档 404“消息”指令在 .htaccess 中不起作用
- python - 如何让pygame只加载屏幕上显示的图形
- java - 如何比较和查找两个直方图是否相同?
- excel - 使用python在excel中自动化手动分组过程
- c++ - cocos实验音频引擎如何制作audioID
- node.js - 如何重写 NodeJS CryptoJS 函数以便它们在 ReactJS web 中工作?
- r - 如何确保仅在使用 Shiny 按下操作按钮时触发操作
- java - 使用给定的单词列表重新创建给定字符串的方法数
- flutter - Flutter Future 总是返回 null