定义哈希码 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
如何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