如何使其在数据库中存储加密并为用户解密

时间:2019-10-17 00:40:39

标签: javascript php

我有用于加密和解密密码的主要函数类。但是在这里,我想在我的php中调用该函数(现在是另一个php)。因此,数据库应该已经加密了密码但还没有。我怎么才能得到它?它应该被加密在数据库中,并加密以供用户查看。谢谢。 我拥有的功能是:

  1. EHORS_CRYPT_VAR-用于加密的密码
  2. EHORS_DECRYPT_VAR-解密密码
  

PHP

function addEmployee() {
global $ehorsObj;
$employeeID     = (isset($_POST['employeeID']) ? $_POST['employeeID'] : '');
$employeeName   = (isset($_POST['employeeName']) ? $_POST['employeeName'] : '');
$departmentID   = (isset($_POST['departmentID']) ? $_POST['departmentID'] : '');
$positionID     = (isset($_POST['positionID']) ? $_POST['positionID'] : '');
$languageID     = (isset($_POST['languageID']) ? $_POST['languageID'] : '');
$userName       = (isset($_POST['userName']) ? $_POST['userName'] : '');
$passWord       = (isset($_POST['passWord']) ? $_POST['passWord'] : '');
$srAuthorized   = (isset($_POST['srAuthorized']) ? $_POST['srAuthorized'] : '');
$srMultiDepAuthorized = (isset($_POST['srMultiDepAuthorized']) ? $_POST['srMultiDepAuthorized'] : '');
$headOfDepartment = (isset($_POST['headOfDepartment']) ? $_POST['headOfDepartment'] : '');
$employeeID     = $_SESSION['employeeID'];  
$propertyID     = $_SESSION['propertyID'];

$Crypted = $ehorsObj->EHORS_CRYPT_VAR($passWord);
$DeCrypted = $ehorsObj->EHORS_DECRYPT_VAR($Crypted);

/* check unique */
$sqlCount   =   "SELECT COUNT(*) AS TOTAL FROM tblHrsEmployee
                 WHERE employeeID != '" . $employeeID . "'
                 AND employeeName = '" . $employeeName . "'
                 AND departmentID = '" . $departmentID . "'
                 AND positionID = '" . $positionID . "'
                 AND languageID = '" . $languageID . "'
                 AND userName = '" . $userName . "'
                 AND passWord = '" . $passWord . "'
                 AND srAuthorized = '" . $srAuthorized . "'
                 AND srMultiDepAuthorized = '" . $srMultiDepAuthorized . "'
                 AND headOfDepartment = '". $headOfDepartment ."'";
$GetResult = $ehorsObj->FetchData($sqlCount, $ehorsObj->DEFAULT_PDO_CONNECTIONS);
while ($row = $GetResult->fetch()){
    $total = $row ['TOTAL'];
}
if ($total == 0){

    $employeeID = $ehorsObj->EHORS_PK("tblHrsEmployee");
    $sqlAdd     =   "INSERT INTO tblHrsEmployee
                    SET employeeID = '" . $employeeID . "',
                    employeeName = '" . $employeeName . "',
                    departmentID = '" . $departmentID . "',
                    positionID = '" . $positionID . "',
                    languageID = '" . $languageID . "',
                    userName = '" . $userName . "',
                    passWord = '" . $DeCrypted . "',
                    srAuthorized = '" . $srAuthorized . "',
                    srMultiDepAuthorized = '" . $srMultiDepAuthorized . "',
                    headOfDepartment = '". $headOfDepartment ."',
                    propertyID = '" . $propertyID . "',
                    active = 'y',                           
                    dateTimeEmployee = NOW() ";     
    $ehorsObj->ExecuteData($sqlAdd, $ehorsObj->DEFAULT_PDO_CONNECTIONS); 
    }else{
        echo "Record already exist";  
    }}
  

JavaScript

{ field: "passWord", hidden:true, title:"Password", editor: getPassword},

function getPassword(container, options) {
    $('<input data-text-field="' + options.field + '" ' +
            'class="k-input k-textbox" ' +
            'type="password" ' +
            'data-value-field="' + options.field + '" ' +
            'data-bind="value:' + options.field + '"/>')
            .appendTo(container)
}

Output

1 个答案:

答案 0 :(得分:0)

尝试这样的事情

Php:

global $ehorsObj;
$encrypted_pass = "";
$decrypted_pass = "";

$sql = "SELECT passWord FROM tblHrsEmployee WHERE employeeID = '" . $employeeID . "' ";
$data = $ehorsObj->ExecuteData($sql, $ehorsObj->DEFAULT_PDO_CONNECTIONS)->fetchAll();

foreach ($data as $row) {
    $encrypted_pass = $row['passWord']."<br />\n";
}

$decrypted_pass = $ehorsObj->EHORS_DECRYPT_VAR($encrypted_pass);

html:

<input type="hidden" class="decrypted_pass" name="decrypted_pass" value="<?=$decrypted_pass?>" >

javascript:

$( document ).ready(function() {
    console.log($(".decrypted_pass").val());
    //will show decrypted pass at console.log
});