微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nodejs加密Crypto的实例代码

加密技术通常分为两大类:“对称式”和“非对称式”。

对称式加密:

就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56bits。

非对称式加密:

就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件

加密为系统中经常使用的功能,node自带强大的加密功能Crypto,下面通过简单的例子进行练习。

rush:js;"> var crypto=require('crypto'); var $=require('underscore');var DEFAULTS = { encoding: { input: 'utf8',output: 'hex' },algorithms: ['bf','blowfish','aes-128-cbc'] };

默认加密算法配置项:

输出格式为hex,

rush:js;"> function MixCrypto(options) { if (typeof options == 'string') options = { key: options };

options = $.extend({},DEFAULTS,options);
this.key = options.key;
this.inputEncoding = options.encoding.input;
this.outputEncoding = options.encoding.output;
this.algorithms = options.algorithms;
}

加密算法可以进行配置,通过配置option进行不同加密算法及编码的使用。

方法代码如下:

rush:js;"> MixCrypto.prototype.encrypt = function (plaintext) { return $.reduce(this.algorithms,function (memo,a) { var cipher = crypto.createCipher(a,this.key); return cipher.update(memo,this.inputEncoding,this.outputEncoding) + cipher.final(this.outputEncoding) },plaintext,this); };

使用crypto进行数据的加密处理。

4、解密方法代码如下:

rush:js;"> MixCrypto.prototype.decrypt = function (crypted) { try { return $.reduceRight(this.algorithms,a) { var decipher = crypto.createDecipher(a,this.key); return decipher.update(memo,this.outputEncoding,this.inputEncoding) + decipher.final(this.inputEncoding); },crypted,this); } catch (e) { return; } };

使用crypto进行数据的解密处理。

通过underscore中的reduce、reduceRight方法,进行加密和解密的算法执行。

以上这篇nodejs加密Crypto的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

原文地址:https://www.jb51.cc/nodejs/47408.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐