欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs加密Crypto的實(shí)例代碼

 更新時(shí)間:2016年07月07日 10:56:22   投稿:jingxian  
下面小編就為大家?guī)硪黄猲odejs加密Crypto的實(shí)例代碼。小編覺得挺不錯(cuò)的, 現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

加密技術(shù)通常分為兩大類:“對(duì)稱式”和“非對(duì)稱式”。

對(duì)稱式加密:

就是加密和解密使用同一個(gè)密鑰,通常稱之為“Session Key ”這種加密技術(shù)在當(dāng)今被廣泛采用,如美國政府所采用的DES加密標(biāo)準(zhǔn)就是一種典型的“對(duì)稱式”加密法,它的Session Key長度為56bits。
非對(duì)稱式加密:

就是加密和解密所使用的不是同一個(gè)密鑰,通常有兩個(gè)密鑰,稱為“公鑰”和“私鑰”,它們兩個(gè)必需配對(duì)使用,否則不能打開加密文件。

加密為系統(tǒng)中經(jīng)常使用的功能,node自帶強(qiáng)大的加密功能Crypto,下面通過簡單的例子進(jìn)行練習(xí)。

1、加密模塊的引用:

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

默認(rèn)加密算法配置項(xiàng):

輸入數(shù)據(jù)格式為utf8,輸出格式為hex,

算法使用bf,blowfish,aes-128-abc三種加密算法;

2、配置項(xiàng)初始化:

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;
}

加密算法可以進(jìn)行配置,通過配置option進(jìn)行不同加密算法及編碼的使用。

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進(jìn)行數(shù)據(jù)的加密處理。

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進(jìn)行數(shù)據(jù)的解密處理。

通過underscore中的reduce、reduceRight方法,進(jìn)行加密和解密的算法執(zhí)行。

本文根據(jù)民少編寫的算法進(jìn)行編寫,如有不足之處,敬請(qǐng)?jiān)?。菜鳥在路上,繼續(xù)前進(jìn)。

以上這篇nodejs加密Crypto的實(shí)例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • node中使用es6/7/8(支持性與性能)

    node中使用es6/7/8(支持性與性能)

    這篇文章主要介紹了node中使用es6/7/8(支持性與性能),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • CentOS 安裝NodeJS V8.0.0的方法

    CentOS 安裝NodeJS V8.0.0的方法

    這篇文章主要介紹了CentOS 安裝NodeJS V8.0.0的方法,需要的朋友可以參考下
    2017-06-06
  • yarn安裝依賴速度太慢的解決辦法

    yarn安裝依賴速度太慢的解決辦法

    本文介紹如何通過修改配置文件解決yarn安裝依賴速度太慢的問題,文中通過圖文結(jié)合講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • Nodejs的express使用教程

    Nodejs的express使用教程

    Express 是一個(gè)簡潔、靈活的 node.js Web 應(yīng)用開發(fā)框架, 它提供一系列強(qiáng)大的特性,幫助你創(chuàng)建各種 Web 和移動(dòng)設(shè)備應(yīng)用,本篇文章給大家介紹nodejs的express使用教程,感興趣的朋友參考下
    2015-11-11
  • node.js中的path.dirname方法使用說明

    node.js中的path.dirname方法使用說明

    這篇文章主要介紹了node.js中的path.dirname方法使用說明,本文介紹了path.dirname的方法說明、語法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 前端必會(huì)的輕量打包工具gulp使用詳解

    前端必會(huì)的輕量打包工具gulp使用詳解

    這篇文章主要為大家介紹了前端必會(huì)的輕量打包工具gulp使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • nodejs轉(zhuǎn)換音頻文件格式并壓縮導(dǎo)出zip格式(vscode語音插件開發(fā))

    nodejs轉(zhuǎn)換音頻文件格式并壓縮導(dǎo)出zip格式(vscode語音插件開發(fā))

    FFmpeg是一套開源的音視頻處理工具,通俗地講,可以對(duì)音視頻文件進(jìn)行剪切、拼接、水印、轉(zhuǎn)碼等處理,這篇文章主要介紹了nodejs轉(zhuǎn)換音頻文件格式并壓縮導(dǎo)出zip格式(vscode語音插件開發(fā)),需要的朋友可以參考下
    2023-05-05
  • Node.js  REPL (交互式解釋器)實(shí)例詳解

    Node.js REPL (交互式解釋器)實(shí)例詳解

    這篇文章主要介紹了Node.js REPL (交互式解釋器)實(shí)例詳解的相關(guān)資料,Node.js REPL(Read Eval Print Loop:交互式解釋器) 表示一個(gè)電腦的環(huán)境,類似 Window 系統(tǒng)的終端,我們可以在終端中輸入命令,并接收系統(tǒng)的響應(yīng),需要的朋友可以參考下
    2017-08-08
  • 詳解如何給Node.js版本降級(jí)

    詳解如何給Node.js版本降級(jí)

    Node.js是一個(gè)基于chrome?v8引擎的JavaScript運(yùn)行時(shí)環(huán)境,用于構(gòu)建快速、可擴(kuò)展的網(wǎng)絡(luò)應(yīng)用程序,在某些情況下,降級(jí)Node.js版本可能額是必要的,本篇文章將向您介紹如今降級(jí)Node.js版本并提供相應(yīng)的源代碼示例,需要的朋友可以參考下
    2023-11-11
  • node.js中的emitter.emit方法使用說明

    node.js中的emitter.emit方法使用說明

    這篇文章主要介紹了node.js中的emitter.emit方法使用說明,本文介紹了emitter.emit的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評(píng)論