Nodejs 数据加密传输

数据加密传输,这个目前我接触的几个方式,一个是密文传输,一个明文传输密文传输,就是用密钥对数据加密,使用公钥对数据解密,传输的通道可以是https的也可以是http的。明文传输,前提是建立一个安全的传输通道,这里使用证书对通道的安全做了防护,然后传输数据,使用的是明文。比较专业的可以后面慢慢分享,不过这里我就介绍下明文传输,如果是用nodejs建立安全通道使用两个库,分别是urllib和request,这里的证书只介绍使用pfx文件urllib库的方式consturllibRequest=(url,method,data,pfx,pass)=>{returnnewPromise(function(resolve,reject){&n...

Nodejs - 通过身份证号验证年龄,出生日期和性别

想要知道自己的年龄,出生日期和性别,或者是别人的,给我个身份证号,我就可以知道,看下面代码。staticvalidateIdNumberToAgeYear(str){letdate=newDate();letcurrentYear=date.getFullYear();letcurrentMonth=date.getMonth()+1;letcurrentDate=date.getDate();letidxSexStart=str.length==18?16:14;letbirthYearSpan=str.length==18?4:2;letyear;letmonth;letday;letsex;let ...

Nginx + Nodejs (110: Connection timed) 错误处理

最近服务器出现问题了,error.log日志里面多了很多的(110:Connectiontimed)这个错误。开始以为是Nodejs的脚本有问题,再请求的时候会有超时的问题,但是检查了一下,并没有发现问题,因为已经对出现问题的错误做了sysError的日志记录,但是在日志里面并没有找到对应的错误信息,很奇怪。也是google下找到了对应的解决方案。参考:http://stackoverflow.com/questions/10395807/nginx-close-upstream-connection-after-requestlocation/{proxy_http_version1.1;proxy_set_headerConnection"";}本来我的upstream中只加了server这段信息的,现在参考了这里的话,也加了下keepalive;upstrea...

Nodejs 中pfx后缀文件的处理

nodejs中,在做加密解密的时候,会得到第三方的各种各样的加密文件,其后缀也就那么几种吧,.key/.pem/.pfx等,是不是可以自定义,反正就是一个文件。但是今天我看了很多的nodejs库好像也没有找到与javakeytool这样的工具,因为在java里面,完全是可以读取pfx,然户进行在进行处理的,如果在nodejs中要如何操作,目前不知道,使用openssl做个转换处理先。第一个命令是:opensslpkcs12-inxxxx.pfx-nocerts-nodes-outdomain_encrypted.key第二个命令是:opensslrsa-indomain_encrypted.key-outprivate.key哪位大神知道的,可以告知下,谢谢了。==================补充=================google上有个办法...

罗列一下提高效率的Nodejs模块

罗列一下提高效率的Nodejs模块,分享之。CheerioFast,flexible,andleanimplementationofcorejQuerydesignedspecificallyfortheserver.Cheerio,说它是服务器端的jQuery一点也不为过,在github上也是大受欢迎,star数达4500有余,至目前为止,已经有923次commit。它兼容jQuery绝大部分的库,以至于你只需要一句$=require('cheerio').load(YOUR_HTML_CONTENT);,便可以像在前端用jQuery一样的舒畅,愉快。Bytheway,和Cheerio类似的框架还有:jsdom,一个受欢迎程度略低于Cheerio,但是它有2,147多的commit,可见维护者之诚意。WaterlineAnadapter-basedORMforNode.jswithsupportformysql,mongo,postgres,redis,andmoreWaterline是从Sails框架衍生出来的Nodejs平台下的...

nvm管理node,并加速nvm、加速npm

nvm的安装请转到这里:https://github.com/creationix/nvm下面先说nvm的加速nvm默认是从http://nodejs.org/dist/下载的,国外服务器,必然很慢,好在nvm以及支持从镜像服务器下载包,于是我们可以方便地从七牛的nodedist镜像下载:$NVM_NODEJS_ORG_MIRROR=http://dist.u.qiniudn.comnvminstall0.12.7于是你就会看到一段非常快速进度条:########################################################################100.0%Nowusingnodev0.12.7如果你不想每次都输入环境变量NVM_NODEJS_ORG_MIRROR,那么我建议你加入到.bashrc文件中:#nvmexportNVM_NODEJS_ORG_MIRROR=http://dist.u.qiniudn.comsource~/git/nvm/nvm.sh然后你可以继续非常方便地安装各...

Nodejs iconv-lite 使用过程中需要注意的几个环节

最近在使用Nodejs的一个库Iconv-lite,有时候会报出这样一个提示Iconv-litewarning:decode()-ingstringsisdeprecated.Refertohttps://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding已经给出了对应的Refer。具体详情见:https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding其实看完之后,很简单就是如果有一个Buffer数据的话,你进行了toString()后,就已经进行了一层默认的decode操作,一般默认的是utf-8,所以如果你在进行iconv.decode()的时候,就会出现一个提示,这个在最新版本会出现这个问题,其他的版本我就不知道了,如果你在使用的过程中,decode之后,没有效果的话,可以试试,在decode之前先不...

Nodejs 破解 不规范json字符串的处理方法

Json字符串如果不是很规范的话,使用nodejs的JSON方法是无法进行parse的,比如说下面这段代码:{'code':'S_OK','result':[0,0,0,0,0],'sessionCount':85,'var':[{'mid':'3a010000d4eede56800000b5','fid':1,'mailSession':149,'size':15074,'sendDate':1433473712,'receiveDate':1433473712,'modifyDate':1434356744,'taskDate':0,'securityLevel':0,'meetingFlag':0,'priority':3,'color':0,'antivirusStatus':0,'rcptFlag':1,'attachmentNum':0,'mailNum':1,'keepDay':0,'sendId':0,'sendTotalNum':0,'sendNewNum':0,'mailFlag':5,'starType'...

javascript的中的test和match,结果你不敢相信

大家看下代码,这个test和match还是晕了我很久的。var__parsers=[];__parsers.push({'regExp':/.*one.*/g});__parsers.push({'regExp':/.*two.*/g});__parsers.push({'regExp':/.*three.*/g});__parsers.push({'regExp':/.*four.*/g});__parsers.push({'regExp':/.*five.*/g});__parsers.push({'regExp':/.*six.*/g});__parsers.push({'regExp':/.*seven.*/g});__parsers.push({'regExp':/.*eight.*/g});varmatchParser=function(subject){for(vari=0;i<__parsers.length;i++){//console.log('RegExp:',__parsers[i].regExp);if(subject.match(__parsers[i].regExp)){return_...