当前位置:   article > 正文

nodejs-crypto加解密_cryptocode.decrypt

cryptocode.decrypt
  • 非对称加解密是利用公钥和私钥的方式来实现的,公钥对外暴露,每个人都可以获取到,客户端传来明文数据,经过公钥加密后,传到服务端,服务端利用私钥进行解密,得到客户端传来的明文数据,反之亦然。我们常见的数字证书、加密狗即是采用非对称加密来完成安全验证的。
    • 优点:安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。
    • 缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
  • utils.js 
  1. const crypto = require('crypto');
  2. // 加密方法
  3. exports.encrypt = (data, key) => {
  4.     // 注意,第二个参数是Buffer类型
  5.     return crypto.publicEncrypt(key, Buffer.from(data));
  6. };
  7. // 解密方法
  8. exports.decrypt = (encrypted, key) => {
  9.     // 注意,encrypted是Buffer类型
  10.     return crypto.privateDecrypt(key, encrypted);
  11. };

 

  1. exports.privKey = `-----BEGIN PRIVATE KEY-----
  2. MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMEuokckuAZIaZTh
  3. ZJ2Af6wH9unBaEAUCrO1q6IqJfBQYPa5mhC+i/p9LIMGLPImlvAinHMHAD8+skzt
  4. LZGScPN2stgHQQOGaZcq4RoVQyLQ7Se37ev5V73ZpnM9vUxjqo8Lokgbfj9sifPX
  5. mYFkxsVYvet91PirRFTHqEs8bkJvAgMBAAECgYEAhYYoIChfEeinIYKQutSAanWu
  6. 0m8eEXxI0WH2WcXsJyhHfQFYXc52jhJK290+37iQhzZFELR8FTrOnqEo5/9iFZF2
  7. tEt0sjr+1bTeD6Vqhzsmu5OgLgiuNW3t6HAl9xM5KoMLN+d9Ngxwrj+9Kfg5OorJ
  8. Wsr0FqZc35phZ0T6OPECQQDu3jnNG4LYvsFNNd1ZhCdwDoGs4wWyBp5X4xOrWJSD
  9. ajNCPmYFri3yZvoUtigcVHTZiFxDC7UAHmXuu6uZDPxLAkEAzwmVv8C3WjY4Ge/6
  10. jsVL76jpDmDZUhCJm0/A7HPvt487W35K8D8woUNjdsE/3b15fhc/Vru8qfEDTG8+
  11. AFlz7QJAUnPHA/PBIMwHsX0sYN/rNRTs0h6zMpZyRegOPBEhgpNACle7o65SEeBV
  12. 5pxSECVfCE+3eTUrT1Uu3k9NllETLQJBAM0qAmty3j9XW2DYnsK8YPOtvsWw06qv
  13. GK3/6n5mpTaRiZCxJjHNbLNhxD76Yf+qs6pv/yREBkGhxFMKKbbO7kECQAIdhNJq
  14. K4R5td8pATnxQjvqvNxDDrYIpY3AkaX05NN+ny8lCCH+vdQU+RTDqS3WIBwA1+sc
  15. dgbs4r0uAii4B6Y=
  16. -----END PRIVATE KEY-----
  17. `;
  18. exports.pubKey = `-----BEGIN PUBLIC KEY-----
  19. MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBLqJHJLgGSGmU4WSdgH+sB/bp
  20. wWhAFAqztauiKiXwUGD2uZoQvov6fSyDBizyJpbwIpxzBwA/PrJM7S2RknDzdrLY
  21. B0EDhmmXKuEaFUMi0O0nt+3r+Ve92aZzPb1MY6qPC6JIG34/bInz15mBZMbFWL3r
  22. fdT4q0RUx6hLPG5CbwIDAQAB
  23. -----END PUBLIC KEY-----
  24. `;
  • index.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()); // 加密内容

  

  如有侵权,请联系作者删除~~~

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号