在前端开发中,常常需要对字符串进行加密、解密或者摘要等处理。有一个叫做 hash-heroes 的 npm 包,可以非常方便地实现这些功能,下面就来详细介绍一下该包的使用教程。
安装
hash-heroes 是一个 npm 包,在使用前需要先安装。在命令行中执行以下命令:
npm install hash-heroes
如果你在使用 yarn,则执行以下命令:
yarn add hash-heroes
使用
hash-heroes 包提供了多种加密、解密和摘要算法,下面分别介绍使用方法。
md5
md5 是一种常用的摘要算法,可以将任意长度的消息压缩成 128 位的摘要。使用 hash-heroes 中的 md5 方法非常简单,示例如下:
const { md5 } = require('hash-heroes'); const hash = md5('hello world'); console.log(hash); // 5eb63bbbe01eeed093cb22bb8f5acdc3
sha1
sha1 是一种安全性比 md5 更高的摘要算法,可以将任意长度的消息压缩成 160 位的摘要。使用 hash-heroes 中的 sha1 方法也非常简单,示例如下:
const { sha1 } = require('hash-heroes'); const hash = sha1('hello world'); console.log(hash); // 2ef7bde608ce5404e97d5f042f95f89f1c232871
sha256
sha256 是一种更加安全的摘要算法,可以将任意长度的消息压缩成 256 位的摘要。使用 hash-heroes 中的 sha256 方法也非常简单,示例如下:
const { sha256 } = require('hash-heroes'); const hash = sha256('hello world'); console.log(hash); // b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
加密
hash-heroes 还提供了多种加密算法,下面分别介绍使用方法。
AES 加密
AES 是一种常用的对称加密算法,可以将数据使用相同的密钥进行加密和解密。使用 hash-heroes 中的 aesEncryption 方法进行加密,示例如下:
const { aesEncryption } = require('hash-heroes'); const key = 'myawesomesecretkey'; const plainText = 'This is a secret message'; const cipherText = aesEncryption(plainText, key); console.log(cipherText);
RSA 加密
RSA 是一种常用的非对称加密算法,可以将数据使用公钥加密,再使用私钥解密。使用 hash-heroes 中的 rsaEncryption 方法进行加密,示例如下:
const { rsaEncryption } = require('hash-heroes'); const publicKey = '-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDdbE\ny14R7BgwxSdnUMzKaw0VDUTCXY6aunMCW5DuXFHbe/Ygr1BsJo5\n8wnPTWNVNUrgb1pJ7G5eZP7C8X3nU4K6UUt\nyshscNGnuRSGkOGSbOpIjKCUZzF5WOfXvUbFgYewikOP5H5ndG\n8xvLmBAmVIGzZDNve/oHEl9\/1gxgO+mOQQIDAQAB\n-----END PUBLIC KEY-----\n'; const plainText = 'This is a secret message'; const cipherText = rsaEncryption(plainText, publicKey); console.log(cipherText);
解密
hash-heroes 中也提供了解密方法,示例如下:
AES 解密
const { aesDecryption } = require('hash-heroes'); const key = 'myawesomesecretkey'; const cipherText = 'dWx5bGlrZXBiaWJzaGVuYXBwYXJlbmNvZGVy'; const plainText = aesDecryption(cipherText, key); console.log(plainText);
RSA 解密
const { rsaDecryption } = require('hash-heroes'); const privateKey = '-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMN1sTLXhHsGDDEF\nJ2dQzMrrDRU1Mwnlq6cwJbkO5cUdt79iCvUGwmjnvDJz01jVTVCuHWknsbl5k\/sL\ne51OCulFLcrIbHDRp7kUhpDhkms6kiMoJRnMXlY59e9RsWBg7CKQ4\/kfmd0bzG8u\nYECZUgbNkM297+gcSX3\/WDEA6aY5BAgMBAAECgYAUp23oaFrsuoq3r3EmwaTz9sJ\nDRsFhRSQYCYyNfwRlxI7WuPvFCz2S0i1kgZ8XboVU4v0U0L6u4p6WWF81WbuzvOl\neiG5zZ0Ut2C0UKa5HXRiYofbSwyMMKSzeibIUvjEVjKPaI2qtRZzZF7V8ohKwoUf\n6UqOUyUaGK8FvKEejQJBAOzZnBm5WQKBvWeDgSqLWhcp5dLWG\/Gi2NLWSw1KhPDV\nOzF+Nwr\/yp9\/LpJyjfj1qbJHebBI+zUC1x0f\/HU+y40CQQDEK\/SXGsyzheXio\/P\nYpwM2E\/KjLrzxN\/xBMBNVhMoq3bnTGTiubBWD9eBJn\/nYcQsMQj\/JPg\/QwvLzQTi\ncZKBAkEAtlX9dtvnnGWFfYt30JPUtWjja8pGCBuO7H1kIEJrdW5jgOvzk1HNHcpB\nYZNg5ZA7Mx6vK0VTRk2KGzZ1VJKX+wJAMiU4oqU6+IuPTnP0k1TNUISLKZDTJ3qo\nd579oI+OcjDX1yRJD2YFEYw+TybUMa0x0eMzZMfj147FA+G0C9g+zQJBAKgdhdSq\nvNpWqcB8SGedBHDz7ivfKjlf\/Q5l5d5Cod5HMCukPJ6MswmUh7b8DkRJQXF\/Savv\nuV7XjG4yU3q4@xz\n-----END PRIVATE KEY-----\n'; const cipherText = 'SvwoUfKPGrjX/l6uLqI4oAiTYKWoMMW+A8ZVBf0Z1CAc5KgB5ue68XH0fg//YkWhBvbuIwkrQn0zF47ZCfd/RTaMYxB+ttEBokLJsHe49qqrxNtJv10DXTYC+nDaPyTlrtTmlq3dGzoLmBJADs67sEccyRmQnHf/L36wA8Qvnjo='; const plainText = rsaDecryption(cipherText, privateKey); console.log(plainText);
结语
使用 hash-heroes 可以方便地实现多种加密、解密和摘要算法,在实际开发中非常有用。希望本文的介绍能对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005668d81e8991b448e2cc0