모듈 기본 모듈

모듈 암호화

암호화 알고리즘 모듈

지침:

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은 http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt 에서 다운로드하여 사용할 수 있는 mozilla의 certdata,txt를 로드합니다 .


loadCrl

여러 번 호출할 수 있는 PEM/DER 형식의 해지 인증서 로드

1
static X509Crl crypto.loadCrl(String filename);

호출 매개변수:

  • filename: String, 해지된 인증서의 파일명

반환 결과:

  • X509Crl, 해지된 인증서를 포함하는 객체를 반환합니다.

loadReq

여러 번 호출할 수 있는 PEM/DER 형식의 인증서 요청 로드

1
static X509Req crypto.loadReq(String filename);

호출 매개변수:

  • filename: 문자열, 인증서 요청 파일 이름

반환 결과:

  • X509Req, 요청된 인증서를 포함하는 객체를 반환합니다.

randomBytes

지정된 크기의 난수 생성, havege 생성기 사용

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", "brainpoolP256r1", "brainpoolP256r1", "1sec"입니다. "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(Abstract) '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

채우기 모드를 ZEROS로 지정

1
const crypto.ZEROS = 3;

NOPADDING

채우기 모드를 NOPADDING으로 지정

1
const crypto.NOPADDING = 4;