Node.js 数据加密传输浅析


Posted in Javascript onNovember 16, 2016

前言

数据加密传输,大家经常接触几个方式一个是密文传输,一个明文传输密文传输,就是用密钥对数据加密,使用公钥对数据解密,传输的通道可以是https的也可以是http的。明文传输,前提是建立一个安全的传输通道,这里使用证书对通道的安全做了防护,然后传输数据,使用的是明文。

比较专业的 可以后面慢慢分享,不过这里我就介绍下明文传输,如果是用nodejs建立安全通道

使用两个库,分别是urllib和request,这里的证书只介绍使用pfx文件

urllib库的方式

const urllibRequest = (url, method, data, pfx, pass) => {
 return new Promise(function(resolve, reject) {
  let options = {
   data: data,
   method: method,
   pfx: pfx,
   passphrase: pass,
   rejectUnauthorized: false
  }
  urllib.request(url, options, function(err, data, res) {
   if (err) {
    return reject(err);
   }
   return resolve(data.toString());
  });
 });
}

request库的方法

const httpRequest = (url, method, data, pfx, pass) => {
 return new Promise((resolve, reject) => {
  let options = {
   url: url,
   method: method,
   form: data,
   headers: {
    'Content-type': 'application/x-www-form-urlencoded'
   },
   agentOptions: {
    pfx: pfx,
    passphrase: pass,
    rejectUnauthorized: false
   }
  };
  request(options, function(err, httpResponse, data) {
   if (err) {
    return reject(err);
   }
   return resolve(data);
  })
 });
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
js类中获取外部函数名的方法与代码
Sep 12 Javascript
prototype 中文参数乱码解决方案
Nov 09 Javascript
js替代copy(示例代码)
Nov 27 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
Jan 31 Javascript
javascript生成随机数的方法
May 16 Javascript
js实现tab切换效果实例
Sep 16 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
JS实现简单的二元方程计算器功能示例
Jan 03 Javascript
Vue精简版风格指南(推荐)
Jan 30 Javascript
js实现简单选项卡功能
Mar 23 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
JavaScript变量Dom对象的所有属性
Apr 30 Javascript
JS中substring与substr的用法
Nov 16 #Javascript
微信小程序 网络请求(GET请求)详解
Nov 16 #Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 #Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 #Javascript
input框中的name和id的区别
Nov 16 #Javascript
微信小程序 页面传参实例详解
Nov 16 #Javascript
JS中关于事件处理函数名后面是否带括号的问题
Nov 16 #Javascript
You might like
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
Python函数式编程
2017/07/20 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
python实现贪吃蛇双人大战
2020/04/18 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
python3 简单实现组合设计模式
2020/07/02 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
往来会计岗位职责
2013/12/19 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
2015年教师节慰问信
2015/03/23 职场文书