使用require('crypto')來訪問這個(gè)模塊。
crypto 模塊需要node 所運(yùn)行的運(yùn)行支持OpenSSL,該模塊為使用安全證書實(shí)現(xiàn)HTTPS 安全網(wǎng)絡(luò)以及HTTP 連 接提供了支持。 模塊同樣為OpenSSL 的hash、hmac、cipher、decipher、sign 以及verify 方法提供一層包裝(以方便在Node 中 使用)。
crypto.createCredentials(details)
建立一個(gè)證書對(duì)象,參數(shù)detail 是由鍵值對(duì)組成的字典。
key : 一個(gè)字符串,包含PEM 編碼的私鑰
cert: 一個(gè)字符串,包含PEM 編碼的證書
ca : 一個(gè)包含PEM 編碼的、可信任的數(shù)字中心認(rèn)證證書的字符串或者字符串列表
如果參數(shù)details 中沒有'ca' , 那么node.js 將缺省使用http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt 中給出的可信任的公鑰。
crypto.createHash(algorithm)
通過參數(shù)algorithm 指定算法建立并且返回一個(gè)哈希對(duì)象,可以用來產(chǎn)生哈希摘要。 algorithm 參數(shù)依賴于node 運(yùn)行平臺(tái)上OpenSSL 所支持的有效算法。例如sha1,md5,sha256,sha512等,在最近發(fā) 布的版本中, openssl list-message-digest-algorithms 將顯示有效的算法摘要。
hash.update(data)
使用data 更新哈希表。當(dāng)以流的方式接受新數(shù)據(jù)時(shí)(數(shù)據(jù)可能被為分多次接收),可多次調(diào)用此方法。
hash.digest(encoding='binary')
計(jì)算所有傳遞來數(shù)據(jù)的哈希摘要。編碼可以是'hex','binary'或者'base64'。
crypto.createHmac(algorithm, key)
通過指定算法(algorithm)和密鑰(key)建立并返回一個(gè)加密的hmac 對(duì)象。 和createhash 函數(shù)一樣,參數(shù)algorithm 的選擇依賴于node 運(yùn)行平臺(tái)上OpenSSL 所支持的有效算法,key 是要使 用的HMAC 私鑰。
hmac.update(data)
更新指定數(shù)據(jù)(參數(shù)data)的hmac 的內(nèi)容,當(dāng)以流的方式接收新數(shù)據(jù)(參數(shù)data)時(shí),可多次調(diào)用此方法。
hmac.digest(encoding='binary')
計(jì)算所有傳遞來數(shù)據(jù)的hmac 摘要。編碼可以是'hex','binary'或者'base64' 。
crypto.createCipher(algorithm, key)
通過指定算法(algorithm )和密鑰(key)建立并返回一個(gè)cipher 對(duì)象 算法參數(shù)的內(nèi)容依賴于OPENSSL 所支持的有效算法,例如aes192等等。OpenSSL 的list-cipher-algorithms 將顯 示有效的cipher 算法。
cipher.update(data, input_encoding='binary', output_encoding='binary')
更新參數(shù)data 所代表的cipher , input_encodin 是初始數(shù)據(jù)的編碼, 編碼可以是'utf8','ascii' 或者'binary' 。 output_encoding 參數(shù)指定了加密數(shù)據(jù)的輸出編碼,編碼可以是'binary','base64'或者'hex'。 返回加密后的內(nèi)容,當(dāng)以流的方式接收新數(shù)據(jù)時(shí),可多次調(diào)用此方法。
cipher.final(output_encoding='binary')
返回剩余的已加密內(nèi)容,output_eocoding 可以是'binary','ascii','utf8'中的一個(gè)。
crypto.createDecipher(algorithm, key)
通過參數(shù)algorithm 和key 建立并返回一個(gè)decipher 對(duì)象。這是前面cipher 對(duì)象的一個(gè)鏡像.
decipher.update(data, input_encoding='binary', output_encoding='binary')
更新參數(shù)data 所代表的decipher ,input_encoding 是初始數(shù)據(jù)的編碼,編碼可以是'binary','base64'或者'hex'。 output_encoding 參數(shù)指定了已解密的銘文的輸出編碼,編碼可以是'binary','base64'或者'hext'
decipher.final(output_encoding='binary')
返回其余解密后的文本。參數(shù)output_encoding 是'binary', 'ascii' or 'utf8'中的一個(gè).
crypto.createSign(algorithm)
通過參數(shù)algorithm 建立并返回一個(gè)signing 對(duì)象。根據(jù)當(dāng)前openSSL 版本,penssl 的list-public-key-algorithms 將 顯示singning 的有效算法.例如'RSA-SHA256'.
signer.update(data)
用參數(shù)data 更新signer 對(duì)象,當(dāng)以流的方式接收新數(shù)據(jù)時(shí),可多次調(diào)用此方法。
signer.sign(private_key, output_format='binary')
計(jì)算所有signer 里已經(jīng)更新的數(shù)據(jù)的簽名。private_key 是一個(gè)字符串,包含用于簽名的PEM 編碼的私鑰。 返回用output_format 指定編碼的簽名,編碼可以是'binary', 'hex' or 'base64'
crypto.createVerify(algorithm)
通過指定algorithm 建立并返回一個(gè)verification 對(duì)象.這是上面signing 對(duì)象的一個(gè)鏡像。
verifier.update(data)
用新數(shù)據(jù)(參數(shù)data)更新verifyer 對(duì)象,當(dāng)以流的方式接收新數(shù)據(jù)時(shí),可多次調(diào)用此方法。
verifier.verify(public_key, signature, signature_format='binary')
用包含有PEM 編碼的公鑰,即參數(shù)public_key 來驗(yàn)證電子簽名數(shù)據(jù)。參數(shù)signature 是先前用此數(shù)據(jù)計(jì)算的簽 名,參數(shù)signature_format 可以是'binary', 'hex' or 'base64'. 根據(jù)簽名和公鑰對(duì)數(shù)據(jù)的驗(yàn)證結(jié)果返回true 或false。
更多建議: