codecamp

Crypto 加密模块

使用require('crypto')来访问这个模块。

crypto 模块需要node 所运行的运行支持OpenSSL,该模块为使用安全证书实现HTTPS 安全网络以及HTTP 连 接提供了支持。 模块同样为OpenSSL 的hash、hmac、cipher、decipher、sign 以及verify 方法提供一层包装(以方便在Node 中 使用)。

crypto.createCredentials(details)

建立一个证书对象,参数detail 是由键值对组成的字典。

key : 一个字符串,包含PEM 编码的私钥

cert: 一个字符串,包含PEM 编码的证书

ca : 一个包含PEM 编码的、可信任的数字中心认证证书的字符串或者字符串列表

如果参数details 中没有'ca' , 那么node.js 将缺省使用http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt 中给出的可信任的公钥。

crypto.createHash(algorithm)

通过参数algorithm 指定算法建立并且返回一个哈希对象,可以用来产生哈希摘要。 algorithm 参数依赖于node 运行平台上OpenSSL 所支持的有效算法。例如sha1,md5,sha256,sha512等,在最近发 布的版本中, openssl list-message-digest-algorithms 将显示有效的算法摘要。

hash.update(data)

使用data 更新哈希表。当以流的方式接受新数据时(数据可能被为分多次接收),可多次调用此方法。

hash.digest(encoding='binary')

计算所有传递来数据的哈希摘要。编码可以是'hex','binary'或者'base64'。

crypto.createHmac(algorithm, key)

通过指定算法(algorithm)和密钥(key)建立并返回一个加密的hmac 对象。 和createhash 函数一样,参数algorithm 的选择依赖于node 运行平台上OpenSSL 所支持的有效算法,key 是要使 用的HMAC 私钥。

hmac.update(data)

更新指定数据(参数data)的hmac 的内容,当以流的方式接收新数据(参数data)时,可多次调用此方法。

hmac.digest(encoding='binary')

计算所有传递来数据的hmac 摘要。编码可以是'hex','binary'或者'base64' 。

crypto.createCipher(algorithm, key)

通过指定算法(algorithm )和密钥(key)建立并返回一个cipher 对象 算法参数的内容依赖于OPENSSL 所支持的有效算法,例如aes192等等。OpenSSL 的list-cipher-algorithms 将显 示有效的cipher 算法。

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

更新参数data 所代表的cipher , input_encodin 是初始数据的编码, 编码可以是'utf8','ascii' 或者'binary' 。 output_encoding 参数指定了加密数据的输出编码,编码可以是'binary','base64'或者'hex'。 返回加密后的内容,当以流的方式接收新数据时,可多次调用此方法。

cipher.final(output_encoding='binary')

返回剩余的已加密内容,output_eocoding 可以是'binary','ascii','utf8'中的一个。

crypto.createDecipher(algorithm, key)

通过参数algorithm 和key 建立并返回一个decipher 对象。这是前面cipher 对象的一个镜像.

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

更新参数data 所代表的decipher ,input_encoding 是初始数据的编码,编码可以是'binary','base64'或者'hex'。 output_encoding 参数指定了已解密的铭文的输出编码,编码可以是'binary','base64'或者'hext'

decipher.final(output_encoding='binary')

返回其余解密后的文本。参数output_encoding 是'binary', 'ascii' or 'utf8'中的一个.

crypto.createSign(algorithm)

通过参数algorithm 建立并返回一个signing 对象。根据当前openSSL 版本,penssl 的list-public-key-algorithms 将 显示singning 的有效算法.例如'RSA-SHA256'.

signer.update(data)

用参数data 更新signer 对象,当以流的方式接收新数据时,可多次调用此方法。

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

计算所有signer 里已经更新的数据的签名。private_key 是一个字符串,包含用于签名的PEM 编码的私钥。 返回用output_format 指定编码的签名,编码可以是'binary', 'hex' or 'base64'

crypto.createVerify(algorithm)

通过指定algorithm 建立并返回一个verification 对象.这是上面signing 对象的一个镜像。

verifier.update(data)

用新数据(参数data)更新verifyer 对象,当以流的方式接收新数据时,可多次调用此方法。

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

用包含有PEM 编码的公钥,即参数public_key 来验证电子签名数据。参数signature 是先前用此数据计算的签 名,参数signature_format 可以是'binary', 'hex' or 'base64'. 根据签名和公钥对数据的验证结果返回true 或false。


net.Stream TCP流模块
DNS 域名解析
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }