亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

NODE.JS加密模塊CRYPTO常用方法介紹

 更新時(shí)間:2014年06月05日 09:15:13   投稿:junjie  
這篇文章主要介紹了NODE.JS加密模塊CRYPTO常用方法介紹,需要的朋友可以參考下

使用require('crypto')調(diào)用加密模塊。

加密模塊需要底層系統(tǒng)提供OpenSSL的支持。它提供了一種安全憑證的封裝方式,可以用于HTTPS安全網(wǎng)絡(luò)以及普通HTTP連接。

該模塊還提供了一套針對(duì)OpenSSL的hash(哈希),hmac(密鑰哈希),cipher(編碼),decipher(解碼),sign(簽名)以及verify(驗(yàn)證)等方法的封裝。

crypto.createCredentials(details)

創(chuàng)建一個(gè)憑證對(duì)象,可選參數(shù)details為一個(gè)帶鍵值的字典:
key:為字符串型,PEM編碼的私鑰。
cert:為字符串型,PEM編碼的認(rèn)證證書(shū)。
ca:字符串形式的PEM編碼可信CA證書(shū),或證書(shū)列表。

如果沒(méi)有給出'ca'的詳細(xì)內(nèi)容,那么node.js將會(huì)使用默認(rèn)的公開(kāi)受信任列表,該表位于http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt。

crypto.createHash(algorithm)

創(chuàng)建并返回一個(gè)hash對(duì)象,它是一個(gè)指定算法的加密hash,用于生成hash摘要。

參數(shù)algorithm可選擇系統(tǒng)上安裝的OpenSSL版本所支持的算法。例如:'sha1', 'md5', 'sha256', 'sha512'等。在近期發(fā)行的版本中,openssl list-message-digest-algorithms會(huì)顯示這些可用的摘要算法。

hash.update(data)

更新hash的內(nèi)容為指定的data。當(dāng)使用流數(shù)據(jù)時(shí)可能會(huì)多次調(diào)用該方法。

hash.digest(encoding='binary')

計(jì)算所有傳入數(shù)據(jù)的hash摘要。參數(shù)encoding(編碼方式)可以為'hex', 'binary' 或者'base64'。

crypto.createHmac(algorithm, key)

創(chuàng)建并返回一個(gè)hmac對(duì)象,它是一個(gè)指定算法和密鑰的加密hmac。

參數(shù)algorithm可選擇OpenSSL支持的算法 - 參見(jiàn)上文的createHash。參數(shù)key為hmac所使用的密鑰。

hmac.update(data)

更新hmac的內(nèi)容為指定的data。當(dāng)使用流數(shù)據(jù)時(shí)可能會(huì)多次調(diào)用該方法。

hmac.digest(encoding='binary')

計(jì)算所有傳入數(shù)據(jù)的hmac摘要。參數(shù)encoding(編碼方式)可以為'hex', 'binary' 或者'base64'。

crypto.createCipher(algorithm, key)

使用指定的算法和密鑰創(chuàng)建并返回一個(gè)cipher對(duì)象。

參數(shù)algorithm可選擇OpenSSL支持的算法,例如'aes192'等。在最近的發(fā)行版中,openssl list-cipher-algorithms會(huì)顯示可用的加密的算法。

cipher.update(data, input_encoding='binary', output_encoding='binary')

使用參數(shù)data更新要加密的內(nèi)容,其編碼方式由參數(shù)input_encoding指定,可以為 'utf8', 'ascii'或者'binary'。參數(shù)output_encoding指定了已加密內(nèi)容的輸出編碼方式,可以為 'binary', 'base64'或'hex'。

返回已加密的內(nèi)容,當(dāng)使用流數(shù)據(jù)時(shí)可能會(huì)多次調(diào)用該方法。

cipher.final(output_encoding='binary')

返回所有剩余的加密內(nèi)容,output_encoding輸出編碼為'binary', 'ascii'或'utf8'其中之一。

crypto.createDecipher(algorithm, key)

使用給定的算法和密鑰創(chuàng)建并返回一個(gè)解密對(duì)象。該對(duì)象為上述加密對(duì)象的反向運(yùn)算。

decipher.update(data, input_encoding='binary', output_encoding='binary')

使用參數(shù)data更新要解密的內(nèi)容,其編碼方式為'binary','base64'或'hex'。參數(shù)output_encoding指定了已解密的明文內(nèi)容的輸出編碼方式,可以為 'binary','ascii'或'utf8'。

decipher.final(output_encoding='binary')

返回全部剩余的已解密的明文,其output_encoding' 為'binary', 'ascii'或'utf8'`其中之一。

crypto.createSign(algorithm)

使用給定的算法創(chuàng)建并返回一個(gè)簽名器對(duì)象。在現(xiàn)有的OpenSSL發(fā)行版中,openssl list-public-key-algorithms會(huì)顯示可用的簽名算法,例如:'RSA-SHA256'。

signer.update(data)

使用data參數(shù)更新簽名器對(duì)象。當(dāng)使用流數(shù)據(jù)時(shí)可能會(huì)多次調(diào)用該方法。

signer.sign(private_key, output_format='binary')

對(duì)所有傳入簽名器的數(shù)據(jù)計(jì)算其簽名。private_key為字符串,它包含了PEM編碼的用于簽名的私鑰。

返回簽名,其output_format輸出可以為'binary', 'hex' 或者'base64'。

crypto.createVerify(algorithm)

使用給定算法創(chuàng)建并返回一個(gè)驗(yàn)證器對(duì)象。它是上述簽名器對(duì)象的反向運(yùn)算。

verifier.update(data)

使用data參數(shù)更新驗(yàn)證器對(duì)象。當(dāng)使用流數(shù)據(jù)時(shí)可能會(huì)多次調(diào)用該方法。

verifier.verify(cert, signature, signature_format='binary')

使用參數(shù)cert和signature驗(yàn)證已簽名的數(shù)據(jù),cert為經(jīng)過(guò)PEM編碼的公鑰字符串,signature為之前已計(jì)算的數(shù)據(jù)的簽名,signature_format可以為'binary','hex' 或者'base64'。

根據(jù)對(duì)數(shù)據(jù)和公鑰進(jìn)行簽名有效性驗(yàn)證的結(jié)果,返回true或者false。

當(dāng)你需要一個(gè)不可逆的加密代碼如何寫(xiě)

復(fù)制代碼 代碼如下:

var text = "123|12312312123123121231231212312312123123121231231212312312";
var hasher=crypto.createHash("md5");
hasher.update(text);
var hashmsg=hasher.digest('hex');//hashmsg為加密之后的數(shù)據(jù)

當(dāng)你需要一個(gè)加密和解密的環(huán)境時(shí)

復(fù)制代碼 代碼如下:

var key="asdhjwheru*asd123-123";//加密的秘鑰
var text = "123|12312312123123121231231212312312123123121231231212312312";
var crypted =cipher.update(text,'utf8','hex');
crypted+=cipher.final('hex');
var message=crypted;//加密之后的值
var decipher = crypto.createDecipher('aes-256-cbc',key);
var dec=decipher.update(message,'hex','utf8');
dec+= decipher.final('utf8');//解密之后的值

PS:關(guān)于加密技術(shù),本站還提供了如下加密工具供大家參考使用:

MD5在線加密工具:http://tools.jb51.net/password/CreateMD5Password

Escape加密/解密工具:http://tools.jb51.net/password/escapepwd

在線SHA1加密工具:http://tools.jb51.net/password/sha1encode

短鏈(短網(wǎng)址)在線生成工具:http://tools.jb51.net/password/dwzcreate

短鏈(短網(wǎng)址)在線還原工具:http://tools.jb51.net/password/unshorturl

高強(qiáng)度密碼生成器:http://tools.jb51.net/password/CreateStrongPassword

相關(guān)文章

  • Egret引擎開(kāi)發(fā)指南之運(yùn)行項(xiàng)目

    Egret引擎開(kāi)發(fā)指南之運(yùn)行項(xiàng)目

    Egret Framework是一款使用TypeScript語(yǔ)言構(gòu)建的開(kāi)源免費(fèi)的移動(dòng)游戲框架。Egret Framework的核心定位是開(kāi)放,高效,優(yōu)雅。通過(guò)它,你可以快速地創(chuàng)建HTML5類型的移動(dòng)游戲,也可以將游戲項(xiàng)目編譯輸出成為目標(biāo)移動(dòng)平臺(tái)的原生游戲應(yīng)用。
    2014-09-09
  • 命令行批量截圖Node腳本示例代碼

    命令行批量截圖Node腳本示例代碼

    這篇文章主要給大家介紹了關(guān)于命令行批量截圖Node腳本的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 快速了解Node中的Stream流是什么

    快速了解Node中的Stream流是什么

    今天小編就為大家分享一篇關(guān)于快速了解Node中的Stream流是什么,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • nodejs中實(shí)現(xiàn)sleep功能實(shí)例

    nodejs中實(shí)現(xiàn)sleep功能實(shí)例

    這篇文章主要介紹了nodejs中實(shí)現(xiàn)sleep功能實(shí)例,本文講解了sleep功能的開(kāi)發(fā)過(guò)程和使用效果及性能測(cè)試,需要的朋友可以參考下
    2015-03-03
  • Node爬蟲(chóng)工具Puppeteer入門(mén)教程實(shí)踐

    Node爬蟲(chóng)工具Puppeteer入門(mén)教程實(shí)踐

    Puppeteer是一個(gè)Node庫(kù),本文主要介紹了Node爬蟲(chóng)工具Puppeteer入門(mén)教程實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • koa-router源碼學(xué)習(xí)小結(jié)

    koa-router源碼學(xué)習(xí)小結(jié)

    這篇文章主要介紹了koa-router源碼學(xué)習(xí)小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 手把手教你通過(guò)nodejs快速搭建一個(gè)服務(wù)器

    手把手教你通過(guò)nodejs快速搭建一個(gè)服務(wù)器

    這篇文章主要給大家介紹了關(guān)于如何通過(guò)nodejs快速搭建一個(gè)服務(wù)器的相關(guān)資料,在node.js中創(chuàng)建一個(gè)服務(wù)器非常簡(jiǎn)單,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 基于node.js之調(diào)試器詳解

    基于node.js之調(diào)試器詳解

    下面小編就為大家?guī)?lái)一篇基于node.js之調(diào)試器詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • node.js中 stream使用教程

    node.js中 stream使用教程

    Stream 是一個(gè)抽象接口,Node 中有很多對(duì)象實(shí)現(xiàn)了這個(gè)接口。例如,對(duì)http 服務(wù)器發(fā)起請(qǐng)求的request 對(duì)象就是一個(gè) Stream,還有stdout(標(biāo)準(zhǔn)輸出)。
    2016-08-08
  • node執(zhí)行cmd或shell命令使用介紹

    node執(zhí)行cmd或shell命令使用介紹

    這篇文章主要為大家介紹了node執(zhí)行cmd或shell命令的使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評(píng)論