简介
ara-crypto 是一个 Node.js 的加密模块,提供了各种加解密算法的实现,包括 AES、DES、RSA 等常见算法。它可以帮助开发者快速实现数据的加密和解密,并提高数据的安全性。
本文将介绍 ara-crypto 的安装和使用,并通过示例代码演示加解密的全过程,希望能对前端开发者有所帮助。
安装
首先,确保已经安装了 Node.js 和 npm。打开终端,并在命令行输入以下命令:
npm install ara-crypto
等待一段时间,便可以完成安装。
使用
在代码中引入 ara-crypto:
const araCrypto = require('ara-crypto')
然后,即可使用 ara-crypto 提供的各种加解密算法。
AES 加解密
const key = 'araCrypto1234567' const iv = 'araCrypto987654' const plainText = 'hello, world!' const cipher = araCrypto.aesEncrypt(plainText, key, iv) const decryptedPlainText = araCrypto.aesDecrypt(cipher, key, iv) console.log(cipher, decryptedPlainText) // 7b03a67d6713652ac11d3fa6a00ab6bb hello, world!
在这个示例中,我们定义了 key 和 iv 两个参数,并分别对明文进行 aesEncrypt 和 aesDecrypt 的操作。加密后的密文为 7b03a67d6713652ac11d3fa6a00ab6bb,解密后的明文为 hello, world!。
DES 加解密
const key = 'araCrypto123' const iv = 'araCrypto456' const plainText = 'hello, world!' const cipher = araCrypto.desEncrypt(plainText, key, iv) const decryptedPlainText = araCrypto.desDecrypt(cipher, key, iv) console.log(cipher, decryptedPlainText) // 99a32dc85a445d0698fbf81761acf3fa hello, world!
这个示例与 AES 加解密的示例类似,只是使用到的加解密算法不同而已。
RSA 加解密
const pubKey = '-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwoc0zAIW8Bgxs1U+mRyR\nxTpMujdM2sTBYq3rZDgNW6UOg6zTx1oiIBspB29yAYLlly98UEdCrQ6TmTevrZD6\nmbU6Fsv62hnVGScJF+V/NNvICNGWHe9bJcEZelNwk/pQzvNQQWkpM8lh5lLk+Q2y\nFduE5ue5p5YtZhh+UDzM0BtP5zhzH3L+pz4V7pKWbto1dISX1IzF/CZV7/kwzdhJ\nV2dlaLTaj+BUnFdmWft9P2v0ZXwa40lJbLmcYueturCp0wHz26/KOyU6MIB1Av3D\nfTzoU6oZkQQJYdAy+ym1cO+fR+DmOOQmJhk60b9XWeuSgGZsw7NKuIhnGlkVInSl\nfJyBXdNRMvg+JsFjqJXHYxMhdZDzy5Z5E/whJJu5Qw65kMVxyfFoF6tIeTCp9xL1\nD0xyae5Y5EJytPjw2t0oIoeVQ2CqbFvrXkOdpSxol85H31uG1hr3qInV4z4/hH6U\nh6lUR3qg9x6SKrEleZDTiSQSn64sGM72znmvtmBdqyJjCxxPYWPkA9X9vQnADZKS\nbsxBbYFSUBW8Nw6TpzgjE6Uzp0bT9H3cpOx6thyOjZdMllsBA1byiSyRwqtyjKNO\nENL226JMqn9hW0oaIZc0zZjYxEZo8pUBWwFwHtVbJcPYu/Bl9TpKt1xL5ZgcF5E5\nKjAaIptQIxoeVWLfCJza2XkCAwEAAQ==\n-----END PUBLIC KEY-----' const priKey = '-----BEGIN PRIVATE KEY-----\n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\n-----END PRIVATE KEY-----' const plainText = 'hello, world!' const cipher = araCrypto.rsaEncrypt(pubKey, plainText) const decryptedPlainText = araCrypto.rsaDecrypt(priKey, cipher) console.log(cipher, decryptedPlainText) // W5+5IM5JQ52dOn5ZsbEIhzjxAX94IuwitAn93JiFXyImoCRfGAjf8WvtMqs1jGZpEuOJxv9ICaDYjKDF0oEzDrH+A6FCXF8hB+UgAiKCCmnahlyU6x9GpJLga6f3qAIXzBKw6ibslZHnvzYkEjlv1ZGhB6U9na6rGeSKrMgTjw83wC8zZfYEEjKkzZaJuaSQx8GCbcWQj/yDdKEyDi5O5eClwb5ggCxJdQltZiOx/nxjXf+TBgl/Zaf1/lOSIm/d45IIuF7HjIY4ltTk7V0g2au0xXjkoPbiRHckS0dCZNKfMizV4N4Nkhgiu+7lgGguezFJOT7Sew== hello, world!
在这个示例中,我们定义了一个公钥和私钥,并分别对明文进行 rsaEncrypt 和 rsaDecrypt 的操作。加密后的密文为 W5+5IM5JQ52dOn5ZsbEIhzjxAX94IuwitAn93JiFXyImoCRfGAjf8WvtMqs1jGZpEuOJxv9ICaDYjKDF0oEzDrH+A6FCXF8hB+UgAiKCCmnahlyU6x9GpJLga6f3qAIXzBKw6ibslZHnvzYk
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/97450