nodejs加密Crypto简单例子
来源:互联网 发布:政府网络舆论互动交流 编辑:程序博客网 时间:2024/05/19 03:27
nodejs加密Crypto简单例子
加密技术通常分为两大类:“对称式”和“非对称式”。
对称式加密:
就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56bits。
非对称式加密:
就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。
加密为系统中经常使用的功能,node自带强大的加密功能Crypto,下面通过简单的例子进行练习。
1、加密模块的引用:
var crypto=require('crypto');var $=require('underscore');
var DEFAULTS = { encoding: { input: 'utf8', output: 'hex' }, algorithms: ['bf', 'blowfish', 'aes-128-cbc']};
默认加密算法配置项:
输入数据格式为utf8,输出格式为hex,
算法使用bf,blowfish,aes-128-abc三种加密算法;
2、配置项初始化:
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进行不同加密算法及编码的使用。
3、加密方法代码如下:
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、解密方法代码如下:
MixCrypto.prototype.decrypt = function (crypted) {try {return $.reduceRight(this.algorithms, function (memo, 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方法,进行加密和解密的算法执行。
0 0
- nodejs加密Crypto简单例子
- nodejs 加密 Crypto
- nodejs加密模块crypto
- Crypto nodejs 加密
- nodeJS之crypto加密
- nodeJS之crypto加密
- nodejs中的加密模块 crypto 模块
- crypto-js,require,nodejs,加密使用手册
- NodeJS-crypto
- AES加密 C++调用Crypto++加密库 例子
- AES加密 C++调用Crypto++加密库 例子
- crypto加密
- crypto 加密
- nodejs中的Crypto模块
- nodejs Crypto使用
- Vc6.0下配置 Crypto++ ------用Crypto Library 实现简单的RSA加密
- 用crypto++实现简单加密解密MFC小程序
- Crypto Columns加密列
- 随笔记录 C语言知识点
- 终于开始写博客
- 【Java常用排序算法】插入排序(直接插入排序、希尔排序)
- Crypto nodejs 加密
- bootstrap
- nodejs加密Crypto简单例子
- Codeforces 768A Oath of the Night's Watch
- C++学习笔记(二)
- 关于SSD的二三事,NAND闪存的一些常识
- Spring整合Mongodb,Maven的依赖,Spring配置,MongoDB的公共操作类,使用SpringMVC的Controller进行测试并返回结果的案例
- java.lang.ClassNotFoundException: net.sf.navigator.menu.MenuContextListener错误
- mysqldump备份数据
- Android NDK 实例
- 1083. List Grades