当前位置:Gxlcms > JavaScript > Node.js非对称加密方法的实现

Node.js非对称加密方法的实现

时间:2021-07-01 10:21:17 帮助过:6人阅读

在Node.js中,负责安全的模块是crypto。本文主要给大家分享了Node.js非对称加密方法以及代码实例讲解,对此有兴趣的朋友参考学习下吧,希望能帮助到大家。

加密、解密方法

在Node.js中,负责安全的模块是crypto。非对称加密中,公钥加密,私钥解密,加解密对应的API分别如下。

加密函数:


  1. crypto.publicEncrypt(key, buffer)

解密函数:


  1. crypto.privateDecrypt(privateKey, buffer)

入门例子

假设有如下utils.js


  1. // utils.js
  2. const crypto = require('crypto');
  3. // 加密方法
  4. exports.encrypt = (data, key) => {
  5. // 注意,第二个参数是Buffer类型
  6. return crypto.publicEncrypt(key, Buffer.from(data));
  7. };
  8. // 解密方法
  9. exports.decrypt = (encrypted, key) => {
  10. // 注意,encrypted是Buffer类型
  11. return crypto.privateDecrypt(key, encrypted);
  12. };

测试代码app.js:


  1. const utils = require('./utils');
  2. const keys = require('./keys');
  3. const plainText = '你好,我是程序猿小卡';
  4. const crypted = utils.encrypt(plainText, keys.pubKey); // 加密
  5. const decrypted = utils.decrypt(crypted, keys.privKey); // 解密
  6. console.log(decrypted.toString()); // 你好,我是程序猿小卡

附上公钥、私钥 keys.js:


  1. exports.privKey = `-----BEGIN RSA PRIVATE KEY-----
  2. MIICXQIBAAKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8ZECKnnO8XRDwttBbf5EmG0qV
  3. 8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kAZ6CZZo1vYgtzhlFnxd4V7Ra+
  4. aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEjeogAOgXACaIqiFyrk3wIDAQAB
  5. AoGBAKdrunYlqfY2fNUVAqAAdnvaVOxqa+psw4g/d3iNzjJhBRTLwDl2TZUXImEZ
  6. QeEFueqVhoROTa/xVg/r3tshiD/QC71EfmPVBjBQJJIvJUbjtZJ/O+L2WxqzSvqe
  7. wzYaTm6Te3kZeG/cULNMIL+xU7XsUmslbGPAurYmHA1jNKFpAkEA48aUogSv8VFn
  8. R2QuYmilz20LkCzffK2aq2+9iSz1ZjCvo+iuFt71Y3+etWomzcZCuJ5sn0w7lcSx
  9. nqyzCFDspQJBAN3O2VdQF3gua0Q5VHmK9AvsoXLmCfRa1RiKuFOtrtC609RfX4DC
  10. FxDxH09UVu/8Hmdau8t6OFExcBriIYJQwDMCQQCZLjFDDHfuiFo2js8K62mnJ6SB
  11. H0xlIrND2+/RUuTuBov4ZUC+rM7GTUtEodDazhyM4C4Yq0HfJNp25Zm5XALpAkBG
  12. atLpO04YI3R+dkzxQUH1PyyKU6m5X9TjM7cNKcikD4wMkjK5p+S2xjYQc1AeZEYq
  13. vc187dJPRIi4oC3PN1+tAkBuW51/5vBj+zmd73mVcTt28OmSKOX6kU29F0lvEh8I
  14. oHiLOo285vG5ZtmXiY58tAiPVQXa7eU8hPQHTHWa9qp6
  15. -----END RSA PRIVATE KEY-----
  16. `;
  17. exports.pubKey = `-----BEGIN PUBLIC KEY-----
  18. MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8
  19. ZECKnnO8XRDwttBbf5EmG0qV8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kA
  20. Z6CZZo1vYgtzhlFnxd4V7Ra+aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEje
  21. ogAOgXACaIqiFyrk3wIDAQAB
  22. -----END PUBLIC KEY-----
  23. `;

相关推荐:

json 字符串非对称加密有关问题

PHP 使用非对称加密算法(RSA)

使用openssl实现rsa非对称加密算法示例

以上就是Node.js非对称加密方法的实现的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行