源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

nodejs加密Crypto的实例代码

  • 时间:2022-11-14 18:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:nodejs加密Crypto的实例代码
[b]加密技术通常分为两大类:“对称式”和“非对称式”。[/b] [b]对称式加密:[/b] 就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56bits。 [b]非对称式加密:[/b] 就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。 加密为系统中经常使用的功能,node自带强大的加密功能Crypto,下面通过简单的例子进行练习。 [b]1、加密模块的引用:[/b]
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三种加密算法; [b]2、配置项初始化:[/b]
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进行不同加密算法及编码的使用。 [b]3、加密方法代码如下: [/b]
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进行数据的加密处理。 [b]4、解密方法代码如下:[/b]
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方法,进行加密和解密的算法执行。 本文根据民少编写的算法进行编写,如有不足之处,敬请原谅。菜鸟在路上,继续前进。 以上这篇nodejs加密Crypto的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部