模块 crypto

加密算法模块

使用方法:

var crypto = require('crypto');

对象

Cipher

Cipher 构造函数,参见 Cipher

Cipher crypto.Cipher;

PKey

PKey 构造函数,参见 PKey

PKey crypto.PKey;

X509Cert

X509Cert 构造函数,参见 X509Cert

X509Cert crypto.X509Cert;

X509Crl

X509Crl 构造函数,参见 X509Crl

X509Crl crypto.X509Crl;

X509Req

X509Req 构造函数,参见 X509Req

X509Req crypto.X509Req;

静态函数

loadPKey

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

static PKey crypto.loadPKey(String filename,
    String password = "");

调用参数:

返回结果:


loadCert

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

static X509Cert crypto.loadCert(String filename);

调用参数:

返回结果:

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


loadCrl

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

static X509Crl crypto.loadCrl(String filename);

调用参数:

返回结果:


loadReq

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

static X509Req crypto.loadReq(String filename);

调用参数:

返回结果:


randomBytes

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

static Buffer crypto.randomBytes(Integer size) async;

调用参数:

返回结果:


simpleRandomBytes

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

static Buffer crypto.simpleRandomBytes(Integer size) async;

调用参数:

返回结果:


pseudoRandomBytes

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

static Buffer crypto.pseudoRandomBytes(Integer size) async;

调用参数:

返回结果:


randomArt

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

static String crypto.randomArt(Buffer data,
    String title,
    Integer size = 8);

调用参数:

返回结果:


pbkdf1

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

static Buffer crypto.pbkdf1(Buffer password,
    Buffer salt,
    Integer iterations,
    Integer size,
    Integer algo) async;

调用参数:

返回结果:


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

static Buffer crypto.pbkdf1(Buffer password,
    Buffer salt,
    Integer iterations,
    Integer size,
    String algoName) async;

调用参数:

返回结果:


pbkdf2

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

static Buffer crypto.pbkdf2(Buffer password,
    Buffer salt,
    Integer iterations,
    Integer size,
    Integer algo) async;

调用参数:

返回结果:


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

static Buffer crypto.pbkdf2(Buffer password,
    Buffer salt,
    Integer iterations,
    Integer size,
    String algoName) async;

调用参数:

返回结果:

常量

AES

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

const crypto.AES = 1;

CAMELLIA

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

const crypto.CAMELLIA = 2;

DES

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

const crypto.DES = 3;

DES_EDE

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

const crypto.DES_EDE = 4;

DES_EDE3

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

const crypto.DES_EDE3 = 5;

BLOWFISH

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

const crypto.BLOWFISH = 6;

ARC4

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

const crypto.ARC4 = 7;

ECB

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

const crypto.ECB = 1;

CBC

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

const crypto.CBC = 2;

CFB64

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

const crypto.CFB64 = 3;

CFB128

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

const crypto.CFB128 = 4;

OFB

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

const crypto.OFB = 5;

CTR

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

const crypto.CTR = 6;

GCM

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

const crypto.GCM = 7;

STREAM

指定流密码模式

const crypto.STREAM = 8;

CCM

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

const crypto.CCM = 9;

PKCS7

指定填充模式为 PKCS7

const crypto.PKCS7 = 0;

ONE_AND_ZEROS

指定填充模式为 ONE_AND_ZEROS

const crypto.ONE_AND_ZEROS = 1;

ZEROS_AND_LEN

指定填充模式为 ZEROS_AND_LEN

const crypto.ZEROS_AND_LEN = 2;

ZEROS

指定填充模式为 ZEROS

const crypto.ZEROS = 3;

NOPADDING

指定填充模式为 NOPADDING

const crypto.NOPADDING = 4;