crypto

加密算法模块

使用方法:

var crypto = require('crypto');

Field Summary

Type Method and Description
const public const AESAESAES

指定对称加密算法 AES,支持 128, 192, 256 位 key,分组密码工作模式支持 ECB, CBC, CFB128, CTR, GCM

const public const CAMELLIACAMELLIACAMELLIA

指定对称加密算法 CAMELLIA,支持 128, 192, 256 位 key,分组密码工作模式支持 ECB, CBC, CFB128, CTR, GCM

const public const DESDESDES

指定对称加密算法 DES,支持 64 位 key,分组密码工作模式支持 ECB, CBC

const public const DES_EDEDES_EDEDES_EDE

指定对称加密算法 DES-EDE,支持 128 位 key,分组密码工作模式支持 ECB, CBC

const public const DES_EDE3DES_EDE3DES_EDE3

指定对称加密算法 DES-EDE3,支持 192 位 key,分组密码工作模式支持 ECB, CBC

const public const BLOWFISHBLOWFISHBLOWFISH

指定对称加密算法 BLOWFISH,支持 192 位 key,分组密码工作模式支持 ECB, CBC, CFB64, CTR

const public const ARC4ARC4ARC4

指定对称加密算法 ARC4,支持 40, 56, 64, 128 位 key

const public const ECBECBECB

指定分组密码工作模式支持 ECB

const public const CBCCBCCBC

指定分组密码工作模式支持 CBC

const public const CFB64CFB64CFB64

指定分组密码工作模式支持 CFB64

const public const CFB128CFB128CFB128

指定分组密码工作模式支持 CFB128

const public const OFBOFBOFB

指定分组密码工作模式支持 OFB

const public const CTRCTRCTR

指定分组密码工作模式支持 CTR

const public const GCMGCMGCM

指定分组密码工作模式支持 GCM

const public const STREAMSTREAMSTREAM

指定流密码模式

const public const CCMCCMCCM

指定分组密码工作模式支持 CCM

const public const PKCS7PKCS7PKCS7

指定填充模式为 PKCS7

const public const ONE_AND_ZEROSONE_AND_ZEROSONE_AND_ZEROS

指定填充模式为 ONE_AND_ZEROS

const public const ZEROS_AND_LENZEROS_AND_LENZEROS_AND_LEN

指定填充模式为 ZEROS_AND_LEN

const public const ZEROSZEROSZEROS

指定填充模式为 ZEROS

const public const NOPADDINGNOPADDINGNOPADDING

指定填充模式为 NOPADDING

void public static static CipherCipherCipher

Cipher 构造函数,参见 Cipher

void public static static PKeyPKeyPKey

PKey 构造函数,参见 PKey

void public static static X509CertX509CertX509Cert

X509Cert 构造函数,参见 X509Cert

void public static static X509CrlX509CrlX509Crl

X509Crl 构造函数,参见 X509Crl

void public static static X509ReqX509ReqX509Req

X509Req 构造函数,参见 X509Req

Method Summary

Type Method and Description
PKey loadPKey(String filename,String password)

加载一个 PEM/DER 格式的密钥文件

X509Cert loadCert(String filename)

加载一个 CRT/PEM/DER/TXT 格式的证书,可多次调用

X509Crl loadCrl(String filename)

加载一个 PEM/DER 格式的撤销证书,可多次调用

X509Req loadReq(String filename)

加载一个 PEM/DER 格式的证书请求,可多次调用

Buffer randomBytes(Integer size)

生成指定尺寸的随机数,使用 havege 生成器

Buffer simpleRandomBytes(Integer size)

生成指定尺寸的低强度随机数,使用快速的算法

Buffer pseudoRandomBytes(Integer size)

生成指定尺寸的伪随机数,使用 entropy 生成器

String randomArt(Buffer data,String title,Integer size)

生成给定数据的可视化字符图像

Buffer pbkdf1(Buffer password,Buffer salt,Integer iterations,Integer size,Integer algo)

依据 pbkdf1 根据明文 password 生成要求的二进制钥匙

Buffer pbkdf1(Buffer password,Buffer salt,Integer iterations,Integer size,String algoName)

依据 pbkdf1 根据明文 password 生成要求的二进制钥匙

Buffer pbkdf2(Buffer password,Buffer salt,Integer iterations,Integer size,Integer algo)

依据 rfc2898 根据明文 password 生成要求的二进制钥匙

Buffer pbkdf2(Buffer password,Buffer salt,Integer iterations,Integer size,String algoName)

依据 rfc2898 根据明文 password 生成要求的二进制钥匙

Buffer pbkdf2Sync(Buffer password,Buffer salt,Integer iterations,Integer size,String algoName)

依据 rfc2898 根据明文 password 生成要求的二进制钥匙,是 pbkdf2 的同步版兼容接口

Field Detail

AES

const public const AESAESAES

指定对称加密算法 AES,支持 128, 192, 256 位 key,分组密码工作模式支持 ECB, CBC, CFB128, CTR, GCM

CAMELLIA

const public const CAMELLIACAMELLIACAMELLIA

指定对称加密算法 CAMELLIA,支持 128, 192, 256 位 key,分组密码工作模式支持 ECB, CBC, CFB128, CTR, GCM

DES

const public const DESDESDES

指定对称加密算法 DES,支持 64 位 key,分组密码工作模式支持 ECB, CBC

DES_EDE

const public const DES_EDEDES_EDEDES_EDE

指定对称加密算法 DES-EDE,支持 128 位 key,分组密码工作模式支持 ECB, CBC

DES_EDE3

const public const DES_EDE3DES_EDE3DES_EDE3

指定对称加密算法 DES-EDE3,支持 192 位 key,分组密码工作模式支持 ECB, CBC

BLOWFISH

const public const BLOWFISHBLOWFISHBLOWFISH

指定对称加密算法 BLOWFISH,支持 192 位 key,分组密码工作模式支持 ECB, CBC, CFB64, CTR

ARC4

const public const ARC4ARC4ARC4

指定对称加密算法 ARC4,支持 40, 56, 64, 128 位 key

ECB

const public const ECBECBECB

指定分组密码工作模式支持 ECB

CBC

const public const CBCCBCCBC

指定分组密码工作模式支持 CBC

CFB64

const public const CFB64CFB64CFB64

指定分组密码工作模式支持 CFB64

CFB128

const public const CFB128CFB128CFB128

指定分组密码工作模式支持 CFB128

OFB

const public const OFBOFBOFB

指定分组密码工作模式支持 OFB

CTR

const public const CTRCTRCTR

指定分组密码工作模式支持 CTR

GCM

const public const GCMGCMGCM

指定分组密码工作模式支持 GCM

STREAM

const public const STREAMSTREAMSTREAM

指定流密码模式

CCM

const public const CCMCCMCCM

指定分组密码工作模式支持 CCM

PKCS7

const public const PKCS7PKCS7PKCS7

指定填充模式为 PKCS7

ONE_AND_ZEROS

const public const ONE_AND_ZEROSONE_AND_ZEROSONE_AND_ZEROS

指定填充模式为 ONE_AND_ZEROS

ZEROS_AND_LEN

const public const ZEROS_AND_LENZEROS_AND_LENZEROS_AND_LEN

指定填充模式为 ZEROS_AND_LEN

ZEROS

const public const ZEROSZEROSZEROS

指定填充模式为 ZEROS

NOPADDING

const public const NOPADDINGNOPADDINGNOPADDING

指定填充模式为 NOPADDING

Cipher

void public static static CipherCipherCipher

Cipher 构造函数,参见 Cipher

PKey

void public static static PKeyPKeyPKey

PKey 构造函数,参见 PKey

X509Cert

void public static static X509CertX509CertX509Cert

X509Cert 构造函数,参见 X509Cert

X509Crl

void public static static X509CrlX509CrlX509Crl

X509Crl 构造函数,参见 X509Crl

X509Req

void public static static X509ReqX509ReqX509Req

X509Req 构造函数,参见 X509Req

Method Detail

loadPKey

PKey loadPKey(String filename,String password)

加载一个 PEM/DER 格式的密钥文件

Parameters

  • filename 密钥文件名

  • password 解密密码

loadCert

X509Cert loadCert(String filename)

加载一个 CRT/PEM/DER/TXT 格式的证书,可多次调用

loadFile 加载 mozilla 的 certdata,txt, 可于 http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt 下载使用

Parameters

  • filename 证书文件名
loadCrl

X509Crl loadCrl(String filename)

加载一个 PEM/DER 格式的撤销证书,可多次调用

Parameters

  • filename 撤销证书文件名
loadReq

X509Req loadReq(String filename)

加载一个 PEM/DER 格式的证书请求,可多次调用

Parameters

  • filename 证书请求文件名
randomBytes

Buffer randomBytes(Integer size)

生成指定尺寸的随机数,使用 havege 生成器

Parameters

  • size 指定生成的随机数尺寸

Returns

返回生成的随机数

simpleRandomBytes

Buffer simpleRandomBytes(Integer size)

生成指定尺寸的低强度随机数,使用快速的算法

Parameters

  • size 指定生成的随机数尺寸

Returns

返回生成的随机数

pseudoRandomBytes

Buffer pseudoRandomBytes(Integer size)

生成指定尺寸的伪随机数,使用 entropy 生成器

Parameters

  • size 指定生成的随机数尺寸

Returns

返回生成的随机数

randomArt

String randomArt(Buffer data,String title,Integer size)

生成给定数据的可视化字符图像

Parameters

  • data 指定要展示的数据

  • title 指定字符图像的标题,多字节字符会导致宽度错误

  • size 字符图像尺寸

Returns

返回生成的可视化字符串图像

pbkdf1

Buffer pbkdf1(Buffer password,Buffer salt,Integer iterations,Integer size,Integer algo)

依据 pbkdf1 根据明文 password 生成要求的二进制钥匙

Parameters

  • password 指定使用的密码

  • salt 指定 hmac 使用的 salt

  • iterations 指定迭代次数

  • size 指定钥匙尺寸

  • algo 指定要使用的 hash 算法,详见 hash 模块

Returns

返回生成的二进制钥匙

pbkdf1

Buffer pbkdf1(Buffer password,Buffer salt,Integer iterations,Integer size,String algoName)

依据 pbkdf1 根据明文 password 生成要求的二进制钥匙

Parameters

  • password 指定使用的密码

  • salt 指定 hmac 使用的 salt

  • iterations 指定迭代次数

  • size 指定钥匙尺寸

  • algoName 指定要使用的 hash 算法,详见 hash 模块

Returns

返回生成的二进制钥匙

pbkdf2

Buffer pbkdf2(Buffer password,Buffer salt,Integer iterations,Integer size,Integer algo)

依据 rfc2898 根据明文 password 生成要求的二进制钥匙

Parameters

  • password 指定使用的密码

  • salt 指定 hmac 使用的 salt

  • iterations 指定迭代次数

  • size 指定钥匙尺寸

  • algo 指定要使用的 hash 算法,详见 hash 模块

Returns

返回生成的二进制钥匙

pbkdf2

Buffer pbkdf2(Buffer password,Buffer salt,Integer iterations,Integer size,String algoName)

依据 rfc2898 根据明文 password 生成要求的二进制钥匙

Parameters

  • password 指定使用的密码

  • salt 指定 hmac 使用的 salt

  • iterations 指定迭代次数

  • size 指定钥匙尺寸

  • algoName 指定要使用的 hash 算法,详见 hash 模块

Returns

返回生成的二进制钥匙

pbkdf2Sync

Buffer pbkdf2Sync(Buffer password,Buffer salt,Integer iterations,Integer size,String algoName)

依据 rfc2898 根据明文 password 生成要求的二进制钥匙,是 pbkdf2 的同步版兼容接口

Parameters

  • password 指定使用的密码

  • salt 指定 hmac 使用的 salt

  • iterations 指定迭代次数

  • size 指定钥匙尺寸

  • algoName 指定要使用的 hash 算法,详见 hash 模块

Returns

返回生成的二进制钥匙