AES:高级加密标准 ( Advanced Encryption Standard ) AES是一种对称加密算法:加密需要密钥,且加密密钥和解密密钥相同 下面是AES加密的Node实现: "use strict"; const crypto = require("crypto"); //封装使用AES加密的方法 function aesEncrept(data, key){ //实例化一个cipher加密对象,使用aes192进行加密,key作为密钥 const c…
Diffie-Hellman( DH ):密钥交换协议/算法 ( Diffie-Hellman Key Exchange/Agreement Algorithm ) 百科摘录: Diffie-Hellman是一种建立密钥的方法,而不是加密方法 这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥, 然后可以用这个密钥进行加密和解密, 但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密, 双方确定要用的密钥后,要使用其他对称密钥操作加密算法实现加密和解密消息.…
HMAC:哈希消息认证码 ( Hash-based Message Authentication Code ) HMAC是密钥相关的哈希算法 使用 HMAC 进行加密的Node实现的一种方法: "use strict";//引入crypto内置模块 const crypto = require("crypto"); //实例化一个hmac对象,使用md5进行加密,加密密钥是secret-key const hmac = crypto.createHmac("…
RSA加密算法 写在前面: 了解RSA算法的原理请查看下面的文章 一文搞懂 RSA 算法 来源:简书  作者:somenzz 在使用 Node 进行 RSA 加密之前我们首先需要获取RSA公共和私有密钥: 1.下载 OpenSSL 两个网址:一个是 官方网站 ,另一个是社区整理网站 2.安装 OpenSSL ,查看下面的文章 OpenSSL下载安装 来源:简书  作者:涓涓细流_708d 3.使用 OpenSSL 生成 RSA 密钥 a.打开命令行,进入到安装OpenSSL的bin目录下(我的是…
MD5:消息摘要算法(Message-Digest Algorithm) SHA家族:安全散列算法( Secure Hash Algorithm ) 1.首先看一个简单的加密 "use strict"; //引入crypto模块 const crypto = require("crypto"); //创建一个使用md5加密的hash对象,也可以使用sha1.sha256.sha512加密 const hash = crypto.createHash("md…
javaScript代码如下: 'use strict'; const crypto = require('crypto'); //实例化一个AES加密对象 const aesEncrept = crypto.createCipher('aes192', 'key'); aesEncrept.on('readable', () => { let data = aesEncrept.read(); console.log(1); console.log(data); if(data) { cons…
We can using gzip and crypto with stream: const fs = require('fs') const zlib = require('zlib') const file = process.argv[2]; const crypto = require('crypto'); const {Transform} = require('stream'); const progress = new Transform({ transform(chunk, e…
fs模块的三个常用方法 1.fs.readFile() -- 读文件 2.fs.writeFile() -- 写文件 3.fa.stat() -- 查看文件信息 fs模块不同于其它模块的地方是它有异步和同步两种方法,其它模块只有异步方法,异步和同步的方法名区别在于同步方法在异步的方法名后面加了"Sync" 1.fs.readFile() //使用ES的严格模式 "use strict"; //引入fs模块 const fs = require("fs&qu…
fs.readdir(path[, options], callback) 例: "use strict"; const fs = require("fs"); const path = require("path"); //获取当前文件所在的绝对路径 let filepath = path.resolve(); fs.readdir(filepath, "utf-8", function(err, files){ if(er…
"流"是一种抽象的数据结构 通过使用"流"可以将一段数据分割成几段,并按顺序传输,使用"流"可以降低对系统性能的要求,减少对CPU的消耗 Stream有三个响应事件 1.data -- 表示数据正在传输 2.end  -- 表示数据传输完成 3.error -- 表示数据传输有误 我们以创建一个文档流读取为例: //使用严格模式 "use strict"; //引入fs模块 const fs = require("f…
Node.js的crypto模块提供了一组包括对OpenSSL的哈希.HMAC.加密.解密.签名,以及验证等一整套功能的封装.具体的使用方法可以参考这篇文章中的描述:node.js_crypto模块. 本文重点介绍在使用createCipheriv方法时所遇到的坑.对应的解密算法createDecipheriv应该是一样的问题. 按照文档中的描述,createCipheriv方法接受三个参数:algorithm用于指定加密算法,如aes-128-ecb.aes-128-cbc等:key是用于加密…
目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookies? 如何清除session和cookies? 写在之后 前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密码加密.如何去提取页面公共部分(相当于用户…
前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密码加密.如何去提取页面公共部分(相当于用户控件和母版页)等等... 下面就一步步开始吧^_^!... 新建express项目并自定义路由规则 1.首先用命令行express+ejs创建一个项目sampleEjsPre cd 工作目录 express -e sampleEjsPre cd sample…
转载:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp1.html 目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookies? 如何清除session和cookies? 写在之后 前言 经过学习Node.js,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些…
大神的node书,免费 视频:https://node.university/courses/short-lectures/lectures/3949510 另一本书:全栈JavaScript,学习backbone.js node.js and MongoDB. 1,2章: Setting up Node.js and Other Essentials [2nd Edition] Using Express.js 4 to Create Node.js Web Apps [2nd Edition…
node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时环境. 一.类比JavaScript和java JavaScript java V8 JVM node.js JRE JavaScript和java都是一门编程语言,至于两者的关系,是雷锋和雷峰塔的关系 V8是google开源的JavaScript引擎,用于执行JavaScript,类似JVM执行java字节码.在node.js诞生之前,V8是内置于Chromium中的,现在也内置于node.js中 node.js…
项目结构 >config/wechat.json 微信公众号的配置文件 >controllers/oauth.js 微信网页授权接口(下一篇再细讲讲) >controllers/wechat.js 微信公众号接口(包括接入接口和其他调用微信api的接口) >wechat/access_token.json 请求微信api接口之前都需要使用的access_token >wechat/crytoGraphy.js 加密解密文件(这里使用的是明文方式,未用到) >wechat…
1.node.js中模块的分类 1)node.js内置模块(核心,原生) 所有内置模块在安装node.js时就已经编译成二进制文件,可以直接加载运行(速度较快),部分内置模块,在node.exe这个进程启动时就已经默认加载了,可以直接使用. 2)文件模块 require(./common.js); // 去当前js文件的路径下找commom.js文件并导入执行.如果导入时没有指定文件后缀require(./commom),那么就按照commom.js,common.json,commom.nod…
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node/url-qs 在处理 web 信息的时候经常需要解析 url,Node.js 提供了方便的处理模块 URL 规范 URL 全称是 uniform resource locator,统一资源定位符,根据一个 url 能够在全球确定一个唯一的资源,URL 由不同的字段组成,url 模块提供了两套 AP…
转自:https://www.jb51.net/article/50668.htm 使用require('crypto')调用加密模块. 加密模块需要底层系统提供OpenSSL的支持.它提供了一种安全凭证的封装方式,可以用于HTTPS安全网络以及普通HTTP连接. 该模块还提供了一套针对OpenSSL的hash(哈希),hmac(密钥哈希),cipher(编码),decipher(解码),sign(签名)以及verify(验证)等方法的封装. crypto.createCredentials(d…
node.js 实现 AES CTR 加解密 node aesctr 前言 由于最近我们在做一款安全的文件分享 App, 所有文件均需要使用 aes ctr 来进行加密,aes key 还有一整套完整的许可体系在保护, 然后再通知各种阅读器进行打开. 关于 aes ctr 不在此做说明,如需了解,请访问 : AES CTR 详细介绍 正文 直接上代码 'use strict' var crypto = require('crypto') // 异或 key 的加解算法 let alg = 'ae…
Node.js是目前非常火热的技术,但是它的诞生经历却很奇特. 众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准. 后来,微软通过IE击败了Netscape后一统桌面,结果几年时间,浏览器毫无进步.(2001年推出的古老的IE 6到今天仍然有人在使用!) 没有竞争就没有发展.微软认为IE6浏览器已经非常完善,几乎没有可改进之处,然后解散了IE6开发团队!而Google却认为支持现代Web应用的新一代浏览器才刚刚起步,尤其是浏…
四. Cluster 1.简介 在介绍 Cluster 之前.我们需要知道 node的 一些基本特性,比如说 都知道的 nodejs最大的特点就是单进程.无阻塞运行,并且是异步事件驱动的. 那么随之而来的最大的缺点也展现出来了,如在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟. 如何来解决这个缺点呐? 那么 Cluster 就是来处理这个问题的 2.函数 const cluster = require('cluster'); 3.例子 const cluster…
原文地址:http://www.moye.me/2015/06/14/cryptography_rsa/ 引子 对于加解密,我一直处于一种知其然不知其所以然的状态,项目核心部分并不倚重加解密算法时,可以勉强对付过去,一旦需要频繁应用诸如 AES/RSA等算法,这种状态就颇令人捉急了. 是时候了解一下原理了,所以找来了这本图解密码技术 给自己补补课: 在该书深入浅出的指引下 ,补充了一些常识,在此进行一番梳理: 对称加密算法(共享密钥) 顾名思义,对称加密就是用相同的密钥进行加密和解密.说到对称加…
首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发.相信这是一个比较好的学习模式和过程.由于这本书是2012年出的,书中的一个web教学项目是开发一个微博.从2012到现在,node.js及其生态环境发生了很大改变,所以关于该书的学习如果照着书本显然是过于陈旧的.到目前为止,node.js的web开发框架已经升级到了Express4.12.1,对于Mong…
本人也不太了解AES加密解密,为了解决Node.js加密,但是无法C#解密的问题,在网上搜了大量的相关文章. 但是多数是Node.js vs Java 或 Java vs C#的双向加密解密代码,但是没有Node.js vs C#. 然后通过反复试验,找到了解决办法. 不多说了,上代码,有坑不怕,随我冲! Node.js加密 var crypto = require('crypto'); var secretKey = 'password'; var aesEncrypt = function(…
原文: https://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/ January 21, 2014/in Community, Node.js v0.12, StrongNode /by Ben Noordhuis 本文地址:http://www.cnblogs.com/jasonxuli/p/4536695.html Node.js v0.12版本如此长的研发周期(9个月并且还在继续,目前为止最长的)使得核心…
v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化.本文会介绍其中最值得注意的几个. 支持塞住模式的可写流 现在可写流可以支持“塞住(corked)”模式,类似于你执行man tcp时见到的socket选项TCP_CORK和TCP_NOPUSH. 当被塞住时,写到流中的数据会排队直到流被重新开塞(uncorked).这样Node.js可以将比较小的写操作合并成比较大的,从而减少系统调用和TCP往返.   http模块已…
一.写在前面的话   Node.js是一个开放源代码.跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动.非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模.这些技术通常用于数据密集的事实应用程序.--来自维基百科   最近花了差不多近一个月的时间去学习Node.js,由于它的代码语言是 Javascript ,因此对于语法上就没有过多的去研究,毕竟做过Web开发的程序员,很少有不会Javascript的.而写这篇文章,也只是为了 如有…
文章目录:         1.Node.js 接入微信公众平台开发         2.Node.js access_token的获取.存储及更新 一.写在前面的话   上一篇文章中,我们使用 Node.js 成功的实现了接入微信公众平台功能.在这篇文章中,我们将实现微信公众平台一个非常重要的参数 access_token ,它是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用 access_token.   在开始之前,让我们先按捺住自己激动的心情.调整好呼吸,因为我们要将上一篇文章…