最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

NodeJS加密解密及node-rsa加密解密用法详解

来源:动视网 责编:小采 时间:2020-11-27 22:06:12
文档

NodeJS加密解密及node-rsa加密解密用法详解

NodeJS加密解密及node-rsa加密解密用法详解:要用nodejs开发接口,实现远程调用,如果裸奔太危险了,就在网上找了一下nodejs的加密,感觉node-rsa挺不错的,下面来总结一下简单的rsa加密解密用法 初始化环境 新建一个文件夹 node-rsa-demo , 终端进入,运行下面命令初始化 cd node-rsa-d
推荐度:
导读NodeJS加密解密及node-rsa加密解密用法详解:要用nodejs开发接口,实现远程调用,如果裸奔太危险了,就在网上找了一下nodejs的加密,感觉node-rsa挺不错的,下面来总结一下简单的rsa加密解密用法 初始化环境 新建一个文件夹 node-rsa-demo , 终端进入,运行下面命令初始化 cd node-rsa-d


要用nodejs开发接口,实现远程调用,如果裸奔太危险了,就在网上找了一下nodejs的加密,感觉node-rsa挺不错的,下面来总结一下简单的rsa加密解密用法

初始化环境

新建一个文件夹 node-rsa-demo , 终端进入,运行下面命令初始化

cd node-rsa-demo
npm init # 一路回车即可
npm install --save node-rsa

生成公钥私钥

在 node-rsa-demo 下新建一个文件 index.js 写上如下代码

var NodeRSA = require('node-rsa')
var fs = require('fs')
function generator() {
 var key = new NodeRSA({ b: 512 })
 key.setOptions({ encryptionScheme: 'pkcs1' })
 var privatePem = key.exportKey('pkcs1-private-pem')
 var publicPem = key.exportKey('pkcs1-public-pem')
 fs.writeFile('./pem/public.pem', publicPem, (err) => {
 if (err) throw err
 console.log('公钥已保存!')
 })
 fs.writeFile('./pem/private.pem', privatePem, (err) => {
 if (err) throw err
 console.log('私钥已保存!')
 })
}
generator();

先在 node-rsa-demo 文件夹下新建一个文件夹 pem 用来存放密钥的,然后执行 node index.js ,会发现在 pem 文件夹下生成了两个文件

  • private.pem
  • public.pem
  • 加密

    加密 hello world 这个字符串

    function encrypt() {
     fs.readFile('./pem/private.pem', function (err, data) {
     var key = new NodeRSA(data);
     let cipherText = key.encryptPrivate('hello world', 'base');
     console.log(cipherText);
     });
    }
    //generator();
    encrypt();

    然后执行 node index.js 终端里会输出一串类似

    fH1aVCUceJYVvt1tZ7WYc1Dh5dVCd952GY5CX283V/wK2229FLgT9WfRNAPMjbTtwL9ghVeYD4Lsi6yM1t4OqA== 的base字符串,这就是用私钥加密后的密文了

    解密

    把上一步加密获得的密文复制粘贴到下面要解密的方法内

    function decrypt() {
     fs.readFile('./pem/public.pem', function (err, data) {
     var key = new NodeRSA(data);
     let rawText = key.decryptPublic('fH1aVCUceJYVvt1tZ7WYc1Dh5dVCd952GY5CX283V/wK2229FLgT9WfRNAPMjbTtwL9ghVeYD4Lsi6yM1t4OqA==', 'utf8');
     console.log(rawText);
     });
    }
    //generator();
    //encrypt();
    decrypt();

    执行 node index.js 会发现又拿到 hello world

    参考

    https://github.com/rzcoder/node-rsa

    PS:下面通过一段代码看下nodejs加密解密

    nodejs是通集成在内核中的crypto模块来完成加密解密。

    常用加密解密模块化代码:

    /**
     * Created by linli on 2015/8/25.
     */
    var crypto = require('crypto');
    
    //加密
    exports.cipher = function(algorithm, key, buf) {
     var encrypted = "";
     var cip = crypto.createCipher(algorithm, key);
     encrypted += cip.update(buf, 'binary', 'hex');
     encrypted += cip.final('hex');
     return encrypted
    };
    
    //解密
    exports.decipher = function(algorithm, key, encrypted) {
     var decrypted = "";
     var decipher = crypto.createDecipher(algorithm, key);
     decrypted += decipher.update(encrypted, 'hex', 'binary');
     decrypted += decipher.final('binary');
     return decrypted
    };

    此处,只针对可逆加密。

    总结

    以上所述是小编给大家介绍的NodeJS加密解密及node-rsa加密解密用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    文档

    NodeJS加密解密及node-rsa加密解密用法详解

    NodeJS加密解密及node-rsa加密解密用法详解:要用nodejs开发接口,实现远程调用,如果裸奔太危险了,就在网上找了一下nodejs的加密,感觉node-rsa挺不错的,下面来总结一下简单的rsa加密解密用法 初始化环境 新建一个文件夹 node-rsa-demo , 终端进入,运行下面命令初始化 cd node-rsa-d
    推荐度:
    标签: 加密 解密 Nodejs
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top