定义哈希码 SHA256 NodeJS

define hash cod SHA256 NodeJS

如何select NodeJS 上的哈希码?

我有一个用另一种语言制作的系统,密码是 SHA256

那里的功能是:

#define HASH_CODE = 'WEASDSAEWEWAEAWEAWEWA';
SHA256_PassHash(HASH_CODE, password, 64);

第一param是哈希码,第二是要加密的var,第三是base64

我在 NodeJS 上进行了加密,但我无法控制哈希码,因此系统不会生成相同的哈希,如何 select NodeJS 上寄存器上的代码以便系统通信和其他人一起?

const code = 'WEASDSAEWEWAEAWEAWEWA';
const normal = 'anne';
const crypto = require('crypto');
const encrypted = crypto
     .createHash('sha256')
     .update(normal)
     .digest('base64');
console.log(encrypted);

兼容代码示例,本次登录PHP login.php

<?php require_once('../mysql_conn.php'); ?> 
    <?php
    session_start();
    $HASH_SENHA = 'WEASDSAEWEWAEAWEAWEWA';

    if(isset($_SESSION['Username']))
    {
        header("location: ../myaccount.php");
        exit();
    } 
    if(isset($_POST['usr']) && isset($_POST['psw']) && isset($_POST['botao'])) 
    { 
        $usuario = mysqli_real_escape_string($MYSQL_CONNECT, $_POST['usr']);  
        $senha = strtoupper(hash("sha256", $_POST['psw'] . $HASH_SENHA));  
        $query = mysqli_query($MYSQL_CONNECT, "SELECT * FROM accounts WHERE Username='$usuario' AND Senha='$senha' LIMIT 1");  

        if(mysqli_num_rows($query) < 1)  
        {
            echo "<script type=\"text/javascript\">
                        alert('Incorrect Username or Password.');
                        window.location = '../login.php';
                  </script>";
            exit();
        }
        else 
        {
            //login efetuado 
            $dados = mysqli_fetch_assoc($query);  


            if (isset($_SESSION['loc'])) {
                header("location:".$_SESSION['loc']);
            }
            else header("location:../index.php");

        }  
    }
    ?> 

通过查看您提供的 PHP 代码。

hash("sha256", $_POST['psw'] . $HASH_SENHA)

它正在散列 $_POST['psw']$HASH_SENHA

的字符串连接

因此,Node.js 中的等效代码应如下所示

Node.js

const crypto = require('crypto');
const code = 'WEASDSAEWEWAEAWEAWEWA';
const input = 'password 123';

const encrypted = crypto
     .createHash('sha256')
     .update(input + code)  // concatenation
     .digest('hex');        // get hash in hex format

console.log(encrypted);

输出

3b3107f01da624da6bb014abe532aa7416869811ebe321784b26770cd2dd74ff