Crypto 加密模块

2018-07-11 09:52 更新

使用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。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号