国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs加密Crypto的實例代碼

2019-11-20 09:32:30
字體:
來源:轉載
供稿:網友

加密技術通常分為兩大類:“對稱式”和“非對稱式”。

對稱式加密:

就是加密和解密使用同一個密鑰,通常稱之為“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方法,進行加密和解密的算法執行。

本文根據民少編寫的算法進行編寫,如有不足之處,敬請原諒。菜鳥在路上,繼續前進。

以上這篇nodejs加密Crypto的實例代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 徐汇区| 阳朔县| 东丰县| 平凉市| 民权县| 镇远县| 新巴尔虎左旗| 甘泉县| 博客| 彭阳县| 屏东市| 清涧县| 浦城县| 藁城市| 喀什市| 会昌县| 盐山县| 江油市| 靖安县| 荔波县| 建阳市| 邵阳县| 长子县| 徐闻县| 北川| 延庆县| 铁岭市| 上杭县| 安吉县| 屯昌县| 潞西市| 房产| 横山县| 托克逊县| 梅河口市| 林口县| 英吉沙县| 孝昌县| 乡宁县| 巧家县| 新河县|