在现代的前端应用程序开发中,安全性是非常重要的一点。特别是当涉及到用户数据或信用卡信息等敏感信息时,加密变得尤为重要。在 JavaScript 中,有很多加密库可以使用,但这里介绍一款 npm 包 cryptum,它提供了常用的加密解密算法。接下来,我们将学习如何使用 cryptum 并实现一些常见的加密解密功能。
安装 cryptum
首先,我们需要在项目中安装 cryptum,打开终端并在项目根目录下输入以下命令:
npm install cryptum --save
这会在我们的项目中安装 cryptum,同时保存在 package.json 中的依赖列表中。
加密解密
对称加密
对称加密是指使用相同的密钥进行加密和解密的加密方式,常用的算法有 AES 和 DES。cryptum 提供了十分简单的 API,以便我们轻松地使用这些算法。
以下是一个简单的加密示例:
const cryptum = require('cryptum'); const password = 'MySuperSecretPassword'; const plaintext = 'Hello, World!'; const encryptionKey = cryptum.createSmallKey(password); const ciphertext = cryptum.encrypt(plaintext, encryptionKey); console.log('ciphertext: ', ciphertext);
这里,我们使用了一个密码作为加密密钥,然后使用 cryptum.createSmallKey() 函数从该密码创建一个对称密钥。接下来,我们使用 cryptum.encrypt() 函数对明文进行加密,将加密后的密文存储在 ciphertext 变量中,并将其打印到控制台上。
解密与加密类似,只需要使用 cryptum.decrypt() 函数即可。以下是一个简单的解密示例:
const decryptKey = cryptum.createSmallKey(password); const decryptedText = cryptum.decrypt(ciphertext, decryptKey); console.log('decrypted text: ', decryptedText);
这里,我们使用相同的密码创建一个解密密钥。然后,使用 cryptum.decrypt() 函数对密文进行解密,并将结果存储在 decryptedText 变量中,并在控制台上打印出来。
非对称加密
与对称加密不同,非对称加密使用一对密钥:公钥和私钥。常用的算法有 RSA 和 DSA。cryptum 也提供了这些常用算法的实现。以下是一个示例:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------- - ------- -------- ----- ------- - ----------------------------- ----- ------------- - ------------------------------------- ------------------- ---------------------- ----- -- --------------- ----- ------------- - -------------------------------------------- -------------------- ---------------------- ----- -- ---------------
这里,我们使用 cryptum.generateRSAKeyPair() 函数生成一对 RSA 密钥。接下来,使用 cryptum.encryptWithPublicKey() 函数对明文进行加密,并使用公钥进行加密。加密后的数据称为“公开数据”,可以安全地发送到任何人。最后,使用 cryptum.decryptWithPrivateKey() 函数使用私钥对公开数据进行解密,并将解密后的明文存储在 decryptedData 变量中。
HMAC 签名
HMAC(Hash-based Message Authentication Code)是一种用于验证消息完整性和身份验证的常用技术。cryptum 中提供了 HMAC 签名的实现。以下是一个示例:
const cryptum = require('cryptum'); const message = 'Hello, World!'; const sharedSecret = 'sUp3rS3CR3T'; const mac = cryptum.signWithHmac(message, sharedSecret); console.log('HMAC: ', mac);
这里,我们使用 cryptum.signWithHmac() 函数生成一个 HMAC 签名。该函数需要消息和共享密钥作为参数。
然后,可以将 HMAC 与消息一起发送到接收方。在此示例中,只是打印出了 HMAC 签名。
结论
在本教程中,我们学习了如何使用 cryptum 来实现常见的加密解密需求以及 HMAC 签名。通过使用 cryptum,我们可以轻松地保护我们的数据,确保它不会被非授权人员访问。
有关 cryptum 和其它相关技术的更多信息,请查看 cryptum 的官方文档。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055fc081e8991b448dd0cb