Node.js hash.copy()方法

Node.js hash.copy()方法

hash.copy()方法是crypto模块的Hash类的内置函数。该方法用于复制哈希的当前状态。可以多次调用该方法来创建哈希的多个副本。如果在调用digest方法之后调用此方法,将会抛出错误。

此函数接受一个可选参数来控制流的行为,例如输出长度。

语法:

hash.copy([,Optional ])

参数: 此函数接受一个可选参数:

  • .流数据的行为。

返回值: 此方法返回当前哈希状态的副本。

模块安装: 使用以下命令安装所需的模块:

npm install crypto

示例1: 只需复制哈希一次。

index.js

// Importing crypto module 
const crypto = require('crypto'); 
  
// Creating Hash instance with createHash 
const hash = crypto.createHash('sha256'); 
  
// use update to add data 
hash.update('I love GeeksForGeeks'); 
  
// Making the copy of the current hash 
const hashCopy = hash.copy(); 
  
// Printing the hash value 
console.log("Original Hash Value : " + hash.digest('hex')); 
console.log("Copied Hash Value : " + hashCopy.digest('hex'));

使用以下命令运行 index.js 文件:

node index.js

输出:

Original Hash Value : 
  5a302d3c930d9e938c5326d7bb863afdc024b9ce77e30e99c4b82983350f8196
Copied Hash Value : 
5a302d3c930d9e938c5326d7bb863afdc024b9ce77e30e99c4b82983350f8196

示例2: 将哈希复制多次。

index.js

const crypto = require('crypto'); 
  
// Creating Hash instance with createHash 
const hash = crypto.createHash('sha256'); 
  
// Adding data to hash 
hash.update('I love GeeksForGeeks'); 
  
// Making copy of the current hash 
const hashCopy1 = hash.copy(); 
const hashCopy2 = hash.copy(); 
  
// Printing the hash value 
console.log("Original Hash Value : " + hash.digest('hex')); 
console.log("Copy 1 : " + hashCopy1.digest('hex')); 
console.log("Copy 2 : " + hashCopy2.digest('hex'));

在下面的命令中运行 index.js 文件:

node index.js

输出:

Original Hash Value : 
  5a302d3c930d9e938c5326d7bb863afdc024b9ce77e30e99c4b82983350f8196
Copy 1 : 
  5a302d3c930d9e938c5326d7bb863afdc024b9ce77e30e99c4b82983350f8196
Copy 2 : 
5a302d3c930d9e938c5326d7bb863afdc024b9ce77e30e99c4b82983350f8196

示例 3: 更新已复制的哈希值。

index.js

//Importing crypto module 
const crypto = require('crypto'); 
  
// Creating Hash instance with createHash 
const hash = crypto.createHash('sha256'); 
  
// Adding data to hash 
hash.update('I love GeeksForGeeks'); 
  
// Making copy of the current hash 
const unchangedCopy = hash.copy(); 
const updatedCopy = hash.copy(); 
  
// Update the old data 
updatedCopy.update('Because I love coding') 
  
// Printing the hash value 
console.log("Original Hash Value : " + hash.digest('hex')); 
console.log("Unchanged Copy : " + unchangedCopy.digest('hex')); 
console.log("Updated Copy : " + updatedCopy.digest('hex'));

使用以下命令运行 index.js 文件:

node index.js

输出:

Original Hash Value : 
  5a302d3c930d9e938c5326d7bb863afdc024b9ce77e30e99c4b82983350f8196
Unchanged Copy : 
  5a302d3c930d9e938c5326d7bb863afdc024b9ce77e30e99c4b82983350f8196
Updated Copy : 
e0789790d7da870830a679828c722f74f3840d4a6483f5babfb62c4d19884c9e

参考: https://nodejs.org/api/crypto.html#crypto_hash_copy_options

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程