简述
iana-hashes
是一个 npm 包,用于获取文件的哈希值。它包含了 IANA(Internet Assigned Numbers Authority)维护的各种哈希算法,包括:MD2、MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、RIPEMD-160 等。
安装
npm install iana-hashes
使用
1. 引入包
在要使用 iana-hashes
的文件中,引入包:
const hashes = require('iana-hashes');
2. 获取哈希值
使用 hashes
对象中的任何一个哈希算法方法,传入要获取哈希值的字符串、buffer 或文件路径,即可得到对应的哈希值。
以下是使用 SHA-256 算法获取字符串 Hello, world!
的哈希值的示例代码:
const hash = hashes.sha256('Hello, world!').toString('hex'); console.log(hash); // 3e25960a79dbc69b674cd4ec67a72c62aabad5ce7cdddc8f440e7be138d2c388
需要注意的是,哈希值默认是以 buffer 类型返回的,因此需要使用 .toString('hex')
将其转换成十六进制字符串,以便查看或存储。
以下是使用 SHA-512 算法获取文件 "./file.txt"
的哈希值的示例代码:
const fs = require('fs'); const hash = hashes.sha512(fs.readFileSync('./file.txt')).toString('hex'); console.log(hash); // 17aeb24f162bcc7a335b2f6dc7e421e8a2cb7efa237f2dce4477c55b9c31261713e54eabecb85f86b2384558d1c047325d47c5c8739faa549f0dd5d5a5bb3bf7
以上代码中,先通过 fs.readFileSync()
方法读取文件内容,然后将其传给 hashes.sha512()
方法,得到哈希值。
3. 支持的哈希算法
iana-hashes
支持以下 IANA 维护的哈希算法:
- MD2
- MD4
- MD5
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
- RIPEMD-160
用户可以使用 hashes
对象中任何一个算法方法,需要注意的是算法名全部小写。
深度和指导意义
iana-hashes
提供了一种方便、快捷的方式来获取文件或字符串的哈希值,这在前端开发中是非常常见的需求。哈希值常常用于校验完整性、验证身份、安全存储密码等场景中。
对于前端开发者来说,熟练掌握它所提供的各种哈希算法的使用方法,以及在具体应用中使用的技巧,将会使得前端开发工作更加得心应手。
示例代码
-- -------------------- ---- ------- ----- ------ - ----------------------- ----- -- - -------------- -- ----- ------- ------- - ------- --- ----- ----- - --------------------- ------------------------- ------------------- -- ---- ------------ - ------- --- ----- ----- - ------------------------------------------------------------- -------------------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/74886