モジュール基本モジュール

モジュール暗号

暗号化アルゴリズムモジュール

指示:

1
var crypto = require('crypto');

オブジェクト

Cipher

Cipher コンストラクタ、参照 Cipher

1
Cipher crypto.Cipher;

PKey

PKey コンストラクタ、参照 PKey

1
PKey crypto.PKey;

X509Cert

X509Cert コンストラクタ、参照 X509Cert

1
X509Cert crypto.X509Cert;

X509Crl

X509Crl コンストラクタ、参照 X509Crl

1
X509Crl crypto.X509Crl;

X509Req

X509Req コンストラクタ、参照 X509Req

1
X509Req crypto.X509Req;

静的関数

createHash

指定されたアルゴリズム名に基づいて情報要約オブジェクトを作成します

1
static Digest crypto.createHash(String algo);

呼び出しパラメータ:

  • algo: 文字列、メッセージ ダイジェスト オブジェクトのアルゴリズムを指定します

結果を返す:

  • Digest、情報要約オブジェクトを返す

createHmac

指定されたアルゴリズム名に基づいて hmac 情報ダイジェスト オブジェクトを作成します

1 2
static Digest crypto.createHmac(String algo, Buffer key);

呼び出しパラメータ:

  • algo: 文字列、メッセージ ダイジェスト オブジェクトのアルゴリズムを指定します
  • key: Buffer、バイナリ署名キー

結果を返す:

  • Digest、情報要約オブジェクトを返す

loadPKey

キーファイルを PEM/DER 形式でロードします

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

呼び出しパラメータ:

  • filename: 文字列、キーファイル名
  • password: 文字列、パスワードを解読

結果を返す:

  • PKey、キーを含むオブジェクトを返します

loadCert

複数回呼び出すことができる CRT/PEM/DER/TXT 形式の証明書をロードします。

1
static X509Cert crypto.loadCert(String filename);

呼び出しパラメータ:

  • filename: 文字列、証明書ファイル名

結果を返す:

  • X509Cert、証明書を含むオブジェクトを返します

loadFile は mozilla の certdata,txt をロードします。これはhttp://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt でダウンロードして使用できます。


loadCrl

複数回呼び出すことができる PEM/DER 形式の失効証明書を読み込みます。

1
static X509Crl crypto.loadCrl(String filename);

呼び出しパラメータ:

  • filename: 文字列、失効した証明書のファイル名

結果を返す:

  • X509Crl、取り消された証明書を含むオブジェクトを返します

loadReq

複数回呼び出すことができる PEM/DER 形式で証明書要求を読み込みます。

1
static X509Req crypto.loadReq(String filename);

呼び出しパラメータ:

  • filename: 文字列、証明書要求ファイル名

結果を返す:

  • X509Req、要求された証明書を含むオブジェクトを返します

randomBytes

指定されたサイズの乱数を生成、hageジェネレーターを使用

1
static Buffer crypto.randomBytes(Integer size) async;

呼び出しパラメータ:

  • size: 整数、生成される乱数のサイズを指定

結果を返す:

  • Buffer、生成した乱数を返す

simpleRandomBytes

高速アルゴリズムを使用して、指定されたサイズの低強度の乱数を生成します

1
static Buffer crypto.simpleRandomBytes(Integer size) async;

呼び出しパラメータ:

  • size: 整数、生成される乱数のサイズを指定

結果を返す:

  • Buffer、生成した乱数を返す

pseudoRandomBytes

エントロピー ジェネレーターを使用して、指定されたサイズの疑似乱数を生成します

1
static Buffer crypto.pseudoRandomBytes(Integer size) async;

呼び出しパラメータ:

  • size: 整数、生成される乱数のサイズを指定

結果を返す:

  • Buffer、生成した乱数を返す

randomArt

指定されたデータの視覚的なキャラクター画像を生成します

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

呼び出しパラメータ:

  • data: Buffer、表示するデータを指定
  • title: 文字列、文字画像のタイトルを指定します。マルチバイト文字は幅エラーになります
  • size:整数、文字画像サイズ

結果を返す:

  • String, 生成された視覚的な文字列イメージを返す

genRsaKey

RSA 秘密鍵を生成する

1
static PKey crypto.genRsaKey(Integer size) async;

呼び出しパラメータ:

  • size: 整数、RSA キーの長さを指定します。単位はビットです。

結果を返す:

  • PKey、生成された秘密鍵を含むオブジェクトを返します

genEcKey

EC 秘密鍵を生成する

1
static PKey crypto.genEcKey(String curve = "secp521r1") async;

呼び出しパラメータ:

  • curve: 文字列、プリセットされた楕円曲線を指定、オプションの値は次のとおりです: "secp521r1", "brainpoolP512r1", "secp384r1", "brainpoolP384r1", "secp256r1", "secp256k1", "brainpoolP256pk1", "2secpr1", "2secpr1", "2secpr1" 「secp192r1」、「secp192k1」

結果を返す:

  • PKey、生成された秘密鍵を含むオブジェクトを返します

genSm2Key

SM2 秘密鍵を生成する

1
static PKey crypto.genSm2Key() async;

結果を返す:

  • PKey、生成された秘密鍵を含むオブジェクトを返します

pbkdf1

プレーンテキストのパスワードに従って、必要なバイナリ キーを pbkdf1 に従って生成します。

1 2 3 4 5
static Buffer crypto.pbkdf1(Buffer password, Buffer salt, Integer iterations, Integer size, Integer algo) async;

呼び出しパラメータ:

  • password: Buffer、使用するパスワードを指定
  • salt: Buffer、hmacで使用するソルトを指定
  • iterations: 整数、反復回数を指定
  • size: 整数、キー サイズを指定
  • algo: 整数、使用するものを指定 hash アルゴリズム、参照 hash モジュール

結果を返す:

  • Buffer、生成されたバイナリキーを返す

プレーンテキストのパスワードに従って、必要なバイナリ キーを pbkdf1 に従って生成します。

1 2 3 4 5
static Buffer crypto.pbkdf1(Buffer password, Buffer salt, Integer iterations, Integer size, String algoName) async;

呼び出しパラメータ:

  • password: Buffer、使用するパスワードを指定
  • salt: Buffer、hmacで使用するソルトを指定
  • iterations: 整数、反復回数を指定
  • size: 整数、キー サイズを指定
  • algoName: 文字列、使用するものを指定 hash アルゴリズム、参照 hash モジュール

結果を返す:

  • Buffer、生成されたバイナリキーを返す

pbkdf2

rfc2898 によると、平文のパスワードに応じて必要なバイナリ キーを生成します。

1 2 3 4 5
static Buffer crypto.pbkdf2(Buffer password, Buffer salt, Integer iterations, Integer size, Integer algo) async;

呼び出しパラメータ:

  • password: Buffer、使用するパスワードを指定
  • salt: Buffer、hmacで使用するソルトを指定
  • iterations: 整数、反復回数を指定
  • size: 整数、キー サイズを指定
  • algo: 整数、使用するものを指定 hash アルゴリズム、参照 hash モジュール

結果を返す:

  • Buffer、生成されたバイナリキーを返す

rfc2898 によると、平文のパスワードに応じて必要なバイナリ キーを生成します。

1 2 3 4 5
static Buffer crypto.pbkdf2(Buffer password, Buffer salt, Integer iterations, Integer size, String algoName) async;

呼び出しパラメータ:

  • password: Buffer、使用するパスワードを指定
  • salt: Buffer、hmacで使用するソルトを指定
  • iterations: 整数、反復回数を指定
  • size: 整数、キー サイズを指定
  • algoName: 文字列、使用するものを指定 hash アルゴリズム、参照 hash モジュール

結果を返す:

  • Buffer、生成されたバイナリキーを返す

getHashes

暗号モジュールのサポートを受ける hash(要約) 「md5」、「sha224」などのアルゴリズム

1
static Array crypto.getHashes();

結果を返す:

  • Array, fibjs サポートに戻る hash アルゴリズム配列

絶え間ない

AES

対称暗号化アルゴリズム AES を指定し、128、192、256 ビット キーをサポート、ブロック暗号作業モードは ECB、CBC、CFB128、CTR、GCM、CCM、XTS をサポート

1
const crypto.AES = 1;

CAMELLIA

対称暗号化アルゴリズム CAMELLIA を指定、128、192、256 ビット キーをサポート、ブロック暗号作業モードは ECB、CBC、CFB128、CTR、GCM、CCM をサポート

1
const crypto.CAMELLIA = 2;

DES

対称暗号化アルゴリズム DES を指定、64 ビット キーをサポート、ブロック暗号作業モードは ECB、CBC をサポート

1
const crypto.DES = 3;

DES_EDE

対称暗号化アルゴリズム DES-EDE を指定、128 ビット キーをサポート、ブロック暗号作業モードは ECB、CBC をサポート

1
const crypto.DES_EDE = 4;

DES_EDE3

対称暗号化アルゴリズム DES-EDE3 を指定、192 ビット キーをサポート、ブロック暗号作業モードは ECB、CBC をサポート

1
const crypto.DES_EDE3 = 5;

BLOWFISH

対称暗号化アルゴリズム BLOWFISH を指定、192 ビット キーをサポート、ブロック暗号作業モードは ECB、CBC、CFB64、CTR をサポート

1
const crypto.BLOWFISH = 6;

ARC4

対称暗号化アルゴリズム ARC4 を指定し、40、56、64、128 ビット キーをサポート

1
const crypto.ARC4 = 7;

ARIA

対称暗号化アルゴリズム ARIA を指定、128、192、256 ビット キーをサポート、ブロック暗号作業モードは ECB、CBC、CFB128、CTR、GCM、CCM をサポート

1
const crypto.ARIA = 8;

CHACHA20

対称暗号化アルゴリズム CHACHA20 を指定、256 ビット キーをサポート、ブロック暗号作業モードは POLY1305 をサポート

1
const crypto.CHACHA20 = 9;

SM4

対称暗号化アルゴリズム SM4 を指定、ブロック暗号動作モードは ECB、CBC をサポート

1
const crypto.SM4 = 10;

ECB

指定されたブロック暗号の動作モードは ECB をサポートします

1
const crypto.ECB = 1;

CBC

指定されたブロック暗号の動作モードは CBC をサポートします

1
const crypto.CBC = 2;

CFB64

指定されたブロック暗号の動作モードは CFB64 をサポートします

1
const crypto.CFB64 = 3;

CFB128

指定されたブロック暗号の動作モードは CFB128 をサポートします

1
const crypto.CFB128 = 4;

OFB

指定されたブロック暗号の動作モードは OFB をサポートします

1
const crypto.OFB = 5;

CTR

指定されたブロック暗号の動作モードは CTR をサポートします

1
const crypto.CTR = 6;

GCM

指定されたブロック暗号の動作モードは GCM をサポートします

1
const crypto.GCM = 7;

STREAM

ストリーム暗号モードの指定

1
const crypto.STREAM = 8;

CCM

指定されたブロック暗号の動作モードは CCM をサポートします

1
const crypto.CCM = 9;

XTS

指定されたブロック暗号の動作モードは XTS をサポートします

1
const crypto.XTS = 10;

POLY1305

指定されたブロック暗号の動作モードは POLY1305 をサポートします

1
const crypto.POLY1305 = 11;

PKCS7

PKCS7 としてフィル モードを指定します。

1
const crypto.PKCS7 = 0;

ONE_AND_ZEROS

塗りつぶしモードを ONE_AND_ZEROS に指定

1
const crypto.ONE_AND_ZEROS = 1;

ZEROS_AND_LEN

充填モードを ZEROS_AND_LEN として指定します。

1
const crypto.ZEROS_AND_LEN = 2;

ZEROS

充填モードをゼロに指定します

1
const crypto.ZEROS = 3;

NOPADDING

充填モードを NOPADDING として指定します。

1
const crypto.NOPADDING = 4;