如何在 JavaScript 中从字符串创建哈希?

什么是哈希?

哈希(Hash)也叫散列,是将任意长度的消息压缩到某一固定长度的消息摘要(Digest)的函数。在JavaScript中,哈希通常用于对数据进行加密和签名。

哈希的一个重要特点就是,只要输入的数据不同,它的输出结果就一定不同。这一点是保证哈希算法可靠性的基础。

哈希的用途

数据加密

哈希可用于对数据加密,将明文经过哈希函数后,输出的结果即为密文。这种加密方式也称为单项加密,因为它无法被逆向破解。

const message = 'Hello World!';

const hash = sha256(message);

console.log(hash); // "9b5e5ccb90d5980c8e8d28ca2275b8c2dd757967768cae239f986de956ba2dae"

上面的代码中,我们使用了sha256哈希算法对文本进行加密。

数字签名

数字签名是一种用于保证文件在传输过程中不被篡改的机制。对文件进行哈希后,再使用私钥对哈希值进行加密,就形成了数字签名。接收者使用公钥对数字签名进行解密,并计算文件的哈希值,将哈希值与解密后的哈希值进行比对,若相同,则说明文件没有被篡改。

JavaScript中哈希的实现

JavaScript中有多种哈希算法的实现,如MD5、SHA1、SHA256等。下面以SHA256算法为例,讲解如何使用JavaScript中的库将字符串转换为哈希值。

安装库

在使用哈希库之前,需要先安装相应的库。通常可以通过npm命令安装。

npm install crypto-js

使用方法

安装好库后,就可以在JavaScript中调用相应的函数生成哈希值。

const CryptoJS = require("crypto-js");

function sha256(str) {

return CryptoJS.SHA256(str).toString(CryptoJS.enc.Hex);

}

const message = "Hello World!";

const hash = sha256(message);

console.log(hash); // 9b5e5ccb90d5980c8e8d28ca2275b8c2dd757967768cae239f986de956ba2dae

上面的代码中,我们使用了crypto-js库中的SHA256函数对文本进行哈希,并将哈希值以16进制字符串的形式输出。

小结

哈希函数是一种将数据压缩成固定长度消息摘要的函数。在JavaScript中,哈希函数通常用于数据加密和数字签名。常见的哈希算法有MD5、SHA1、SHA256等。使用JavaScript中的库,可以方便地实现哈希功能。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。