【问题标题】:define hash cod SHA256 NodeJS定义哈希编码 SHA256 NodeJS
【发布时间】:2019-11-18 14:06:08
【问题描述】:

NodeJS如何选择hash码?

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

那里的功能:

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

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

我在NodeJS上做了加密,但是我无法控制hash code,所以系统不会做同样的hash,如何在NodeJS上选择寄存器上的code,以便系统与其他人通信?

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

兼容代码示例,此登录 PHP 登录.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");

        }  
    }
    ?> 

【问题讨论】:

  • 您需要同时提供 Node 和 Other hash 的结果
  • SHA256_PassHash 被调用的另一种语言是什么?
  • 那里的密码 123(带代码):8A8E0E514F3A1F3D160C58C99BC66C81A10256E6A3462002A53ADACAD6C43EAB 节点中的密码 123(不带代码控制):kLjeQFHwK3opSENB86kD4bLGojXm8Rl=

标签: node.js sha256 sha


【解决方案1】:

通过查看您提供的 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

【讨论】:

    猜你喜欢
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2020-06-30
    • 2014-01-14
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    相关资源
    最近更新 更多