Node.js 将SHA-256与NodeJS加密一起使用

Node.js 将SHA-256与NodeJS加密一起使用,node.js,node-crypto,Node.js,Node Crypto,我试图在NodeJS中散列一个变量,如下所示: var crypto = require('crypto'); var hash = crypto.createHash('sha256'); var code = 'bacon'; code = hash.update(code); code = hash.digest(code); console.log(code); 但我似乎误解了这些文档,因为console.log并没有记录培根的散列版本,只是记录了一些关于SlowBuffer的

我试图在NodeJS中散列一个变量,如下所示:

var crypto = require('crypto');

var hash = crypto.createHash('sha256');

var code = 'bacon';

code = hash.update(code);
code = hash.digest(code);

console.log(code);
但我似乎误解了这些文档,因为console.log并没有记录培根的散列版本,只是记录了一些关于SlowBuffer的信息

正确的方法是什么?

base64:

const hash=crypto.createHash('sha256').update(pwd).digest('base64');
十六进制:

crypto.createHash('sha256').update(pwd.digest('hex');


与上面的答案类似,但这显示了如何进行多次写入;例如,如果从文件中逐行读取,然后将每一行作为单独的操作添加到哈希计算中

在我的示例中,我还修剪换行符/跳过空行(可选):

const{createHash}=require('crypto');
//行:字符串数组
函数计算HA256(行){
const hash=createHash('sha256');
for(设i=0;i

我使用这段代码确保生成的文件行不会被人手动编辑。为此,我将这些行写出来,用SH265总和附加一行,如
sha256:
,然后在下一次运行时,验证这些行的哈希值是否与所述sha265总和匹配。

//以十六进制形式输入:crypto.createHash('sha256')。update('password')。digest('hex');不要用sha256散列密码?查找bcrypt或类似内容。此摘要的作用是什么?以下是-将“md5”替换为“sha256”以获得所需内容。这是否回答了您的问题?
const crypto = require('crypto');
const hash = crypto.createHash('sha256');

hash.on('readable', () => {
    const data = hash.read();
    if (data) {
        console.log(data.toString('hex'));
        // Prints:
        //  6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50
    }
});

hash.write('some data to hash');
hash.end();
const {createHash} = require('crypto');

// lines: array of strings
function computeSHA256(lines) {
  const hash = createHash('sha256');
  for (let i = 0; i < lines.length; i++) {
    const line = lines[i].trim(); // remove leading/trailing whitespace
    if (line === '') continue; // skip empty lines
    hash.write(line); // write a single line to the buffer
  }

  return hash.digest('base64'); // returns hash as string
}