Node.js v0.10.31API手冊-加密

Node.js v0.10.31API手冊-文件夹

加密(Crypto)

使用 require('crypto') 来调用该模块。

crypto模块提供在HTTPS或HTTP连接中封装安全凭证的方法。

它提供OpenSSL中的一系列哈希方法,包含hmac、cipher、decipher、签名和验证等方法的封装。

crypto.getCiphers()

返回一个数组,包括支持的加密算法的名字。


演示样例:

var ciphers = crypto.getCiphers();
console.log(ciphers); // ['AES-128-CBC', 'AES-128-CBC-HMAC-SHA1', ...]

crypto.getHashes()

返回一个包括所支持的哈希算法的数组。


演示样例:

var hashes = crypto.getHashes();
console.log(hashes); // ['sha', 'sha1', 'sha1WithRSAEncryption', ...]

crypto.createCredentials(details)

创建一个加密凭证对象。接受一个可选的參数对象:

  • pfx : 一个字符串或者buffer对象。代表经PFX或者PKCS12编码产生的私钥、证书以及CA证书
  • key : 一个字符串,代表经PEM编码产生的私钥
  • passphrase : 私钥或者pfx的password
  • cert : 一个字符串。代表经PEM编码产生的证书
  • ca : 一个字符串或者字符串数组,表示可信任的经PEM编码产生的CA证书列表
  • crl : 一个字符串或者字符串数组。表示经PEM编码产生的CRL(证书吊销列表 Certificate Revocation List)
  • ciphers: 一个字符串,表示须要使用或者排除的加密算法 能够在http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT 查看很多其它关于加密算法格式的资料。
假设没有指定ca。node.js会使用http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt提供的公共可信任的CA列表。

crypto.createHash(algorithm)

创建并返回一个哈希对象,一个使用所给算法的用于生成摘要的加密哈希。


algorithm 取决与平台上所安装的 OpenSSL 版本号所支持的算法。比方'sha1''md5''sha256''sha512' 等等。在近期的发行版本号中。openssl list-message-digest-algorithms 会显示可用的摘要算法。

演示样例:这段程序会计算出一个文件的 sha1 摘要值。

var filename = process.argv[2];
var crypto = require('crypto');
var fs = require('fs');

var shasum = crypto.createHash('sha1');

var s = fs.ReadStream(filename);
s.on('data', function(d) {
  shasum.update(d);
});

s.on('end', function() {
  var d = shasum.digest('hex');
  console.log(d +
posted @ 2017-05-11 21:15  jzdwajue  阅读(129)  评论(0编辑  收藏  举报