NODE.JS 암호화 모듈 CRYPTO의 일반적인 방법 소개

高洛峰
풀어 주다: 2016-12-26 09:18:14
원래의
1314명이 탐색했습니다.

암호화 모듈을 호출하려면 require('crypto')를 사용하세요.

암호화 모듈을 사용하려면 OpenSSL 지원을 제공하는 기본 시스템이 필요합니다. 보안 자격 증명을 캡슐화하는 방법을 제공하며 일반 HTTP 연결은 물론 HTTPS 보안 네트워크에도 사용할 수 있습니다.

이 모듈은 OpenSSL 메소드 캡슐화를 위한 해시(해시), hmac(키 해시), 암호(인코딩), 해독(디코딩), 서명(서명) 및 확인(검증) 세트도 제공합니다.

crypto.createCredentials(details)

선택적 매개변수 세부정보는 키 값이 있는 사전입니다.
key: 문자열 유형, PEM으로 인코딩된 개인 키.
cert: 문자열 형식의 PEM 인코딩된 인증서입니다.
ca: 문자열 형식의 PEM 인코딩된 신뢰할 수 있는 CA 인증서 또는 인증서 목록입니다.

'ca' 세부정보가 제공되지 않으면 node.js는 http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins에 있는 기본 공개 신뢰할 수 있는 목록을 사용합니다. /certdata.txt.

crypto.createHash(algorithm)

지정된 알고리즘의 암호화 해시이며 해시 다이제스트를 생성하는 데 사용되는 해시 객체를 생성하고 반환합니다.

매개변수 알고리즘은 시스템에 설치된 OpenSSL 버전에서 지원하는 알고리즘을 선택할 수 있습니다. 예: 'sha1', 'md5', 'sha256', 'sha512' 등 최근 릴리스에서는 openssl list-message-digest-algorithms에 사용 가능한 다이제스트 알고리즘이 표시됩니다.

hash.update(data)

해시 내용을 지정된 데이터로 업데이트합니다. 이 메서드는 스트리밍 데이터 작업 시 여러 번 호출될 수 있습니다.

hash.digest(encoding='binary')

수신되는 모든 데이터의 해시 다이제스트를 계산합니다. 인코딩 매개변수는 'hex', 'binary' 또는 'base64'일 수 있습니다.

crypto.createHmac(algorithm, key)

지정된 알고리즘과 키를 사용하는 암호화 hmac인 hmac 객체를 생성하고 반환합니다.

매개변수 알고리즘은 OpenSSL에서 지원하는 알고리즘을 선택할 수 있습니다. 위의 createHash를 참조하세요. 매개변수 키는 hmac에서 사용하는 키입니다.

hmac.update(data)

hmac의 내용을 지정된 데이터로 업데이트합니다. 이 메서드는 스트리밍 데이터 작업 시 여러 번 호출될 수 있습니다.

hmac.digest(encoding='binary')

수신되는 모든 데이터의 hmac 다이제스트를 계산합니다. 인코딩 매개변수는 'hex', 'binary' 또는 'base64'일 수 있습니다.

crypto.createCipher(algorithm, key)

지정된 알고리즘과 키를 사용하여 암호 객체를 생성하고 반환합니다.

매개변수 알고리즘은 'aes192' 등 OpenSSL에서 지원하는 알고리즘을 선택할 수 있습니다. 최근 릴리스에서는 openssl list-cipher-algorithms에 사용 가능한 암호화 알고리즘이 표시됩니다.

cipher.update(data, input_encoding='binary', output_encoding='binary')

암호화할 콘텐츠를 업데이트하려면 매개변수 데이터를 사용하세요. 인코딩 방법은 매개변수에 의해 지정됩니다. input_encoding은 'utf8', 'ascii' 또는 'binary'일 수 있습니다. 매개변수 output_encoding은 암호화된 콘텐츠의 출력 인코딩 방법('binary', 'base64' 또는 'hex')을 지정합니다.

암호화된 콘텐츠를 반환합니다. 이 메서드는 스트리밍 데이터를 사용할 때 여러 번 호출될 수 있습니다.

cipher.final(output_encoding='binary')

나머지 암호화된 콘텐츠를 모두 반환합니다. output_encoding 출력 인코딩은 'binary', 'ascii' 또는 'utf8' 중 하나입니다.

crypto.createDecipher(algorithm, key)

주어진 알고리즘과 키를 사용하여 복호화 개체를 생성하고 반환합니다. 이 개체는 위의 암호화된 개체와 반대입니다.

decipher.update(data, input_encoding='binary', output_encoding='binary')

복호화할 콘텐츠를 매개변수 데이터를 사용하여 업데이트하며, 인코딩 방식은 '바이너리'입니다. 'base64' 또는 '16진수'. 매개변수 output_encoding은 해독된 일반 텍스트 콘텐츠의 출력 인코딩 방법('binary', 'ascii' 또는 'utf8')을 지정합니다.

decipher.final(output_encoding='binary')

output_encoding'이 'binary', 'ascii' 또는 'utf8'` 중 하나인 해독된 나머지 일반 텍스트를 모두 반환합니다.

crypto.createSign(algorithm)

주어진 알고리즘을 사용하여 서명자 객체를 생성하고 반환합니다. 기존 OpenSSL 배포판에서 openssl list-public-key-algorithms는 사용 가능한 서명 알고리즘을 표시합니다(예: 'RSA-SHA256').

signer.update(data)

signer 객체를 업데이트하려면 data 매개변수를 사용하세요. 이 메서드는 스트리밍 데이터 작업 시 여러 번 호출될 수 있습니다.

signer.sign(private_key, output_format='binary')

서명자에게 전달된 모든 데이터의 서명을 계산합니다. private_key는 서명에 사용되는 PEM 인코딩 개인 키가 포함된 문자열입니다.

반환 서명, 해당 output_format 출력은 'binary', 'hex' 또는 'base64'일 수 있습니다.

crypto.createVerify(algorithm)

주어진 알고리즘을 사용하여 검증자 객체를 생성하고 반환합니다. 이는 위의 서명자 개체와 반대입니다.

verifier.update(data)

data 매개변수를 사용하여 유효성 검사기 개체를 업데이트합니다. 이 메서드는 스트리밍 데이터 작업 시 여러 번 호출될 수 있습니다.

verifier.verify(cert, 서명, 서명_format='바이너리')

서명된 데이터를 확인하려면 cert 및 서명 매개변수를 사용하세요. cert는 PEM으로 인코딩된 공개 키 문자열이고, 서명은 이전에 계산된 데이터의 서명이며, Signature_format은 'binary', 'hex' 또는 'base64'일 수 있습니다. .

데이터 및 공개키의 서명 유효성 검증 결과에 따라 true 또는 false를 반환합니다.

필요할 때 되돌릴 수 없는 암호화 코드 작성 방법

var text = "123|12312312123123121231231212312312123123121231231212312312";
var hasher=crypto.createHash("md5");
hasher.update(text);
var hashmsg=hasher.digest('hex');//hashmsg为加密之后的数据
로그인 후 복사

암호화 및 복호화 환경이 필요할 때

var key="asdhjwheru*asd123-123";//加密的秘钥
var text = "123|12312312123123121231231212312312123123121231231212312312";
var crypted =cipher.update(text,'utf8','hex');
crypted+=cipher.final('hex');
var message=crypted;//加密之后的值
var decipher = crypto.createDecipher('aes-256-cbc',key);
var dec=decipher.update(message,'hex','utf8');
dec+= decipher.final('utf8');//解密之后的值
로그인 후 복사

더보기 NODE.JS 암호화 결제해주세요 CRYPTO 모듈의 일반적인 방법을 소개하는 관련 기사는 PHP 중국어 웹사이트에 주목하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿