首页 > 解决方案 > 在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 ))) ;
        }
    ?> 

标签: phpauthenticationbase64

解决方案


代码看起来不错,尝试在“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 ))))
}}

推荐阅读