Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Node.js의 crypto.createCipheriv() 메서드

<시간/>

crypto.createCipheriv() 메서드는 먼저 주어진 키 및 인증 요소(iv)에 대해 전달된 알고리즘에 따라 암호 객체를 생성한 다음 반환합니다.

구문

crypto.createCipheriv(알고리즘, 키, iv, 옵션)

매개변수

위의 매개변수는 다음과 같이 설명됩니다 -

  • 알고리즘 – 암호를 생성하는 데 사용할 알고리즘에 대한 입력을 받습니다. 가능한 값은 다음과 같습니다. es192, aes256 등

  • – 알고리즘 및 iv에서 사용하는 원시 키에 대한 입력을 취합니다. 가능한 값은 문자열, 버퍼, TypedArray 또는 DataView 유형일 수 있습니다. 선택적으로 비밀 유형의 유형 개체일 수 있습니다.

  • iv – 초기화 벡터라고도 합니다. 이 매개변수는 암호를 불확실하고 고유하게 만드는 iv에 대한 입력을 받습니다. 비밀일 필요는 없습니다. 가능한 값 유형은 문자열, 버퍼, TypedArray, DataView입니다. 암호에 필요하지 않은 경우 null일 수 있습니다.

  • 옵션 – 이것은 스트림 동작을 제어하기 위한 선택적 매개변수입니다. 암호가 CCM 또는 OCB 모드(예:'aes-256-ccm')에서 사용되는 경우 이는 선택 사항이 아닙니다.

예시

이름이 createCipheriv.js인 파일을 만들고 아래 코드 조각을 복사합니다. 파일을 생성한 후 다음 명령을 사용하여 아래 예와 같이 이 코드를 실행하십시오 -

노드 createCipheriv.js

createCipheriv.js

// ECDH 생성을 위한 노드 데모 프로그램// 암호화 모듈 가져오기 const crypto =require('crypto');// algorithmconst 알고리즘 초기화 ='aes-256-cbc';// keyconst 키 초기화 =crypto.randomBytes(32);// iv vectorconst iv =crypto.randomBytes(16);// 데이터를 암호화하는 함수 생성하기 encrypt(text) {// 위에서 정의한 매개변수로 암호 생성하기let cipher =crypto.createCipheriv ( 'aes-256-cbc', Buffer.from(key), iv);let encrypted =cipher.update(text);encrypted =Buffer.concat([encrypted, cipher.final()]);// iv 반환 및 암호화된 데이터 반환 { iv:iv.toString('hex'), encryptedData:encrypted.toString('hex') };}// 공개 및 비공개 곡선 키 인쇄...var output =encrypt("TutorialsPoint"); console.log(출력);

출력

C:\home\node>> 노드 createCipheriv.js{ iv:'3dd899aa441c00d4d8d2ff95abb2e684',encryptedData:'b4985053bc1507fc25a4d99823dc8b03' }
예시

예를 하나 더 살펴보겠습니다.

// ECDH 생성을 위한 노드 데모 프로그램// 암호화 모듈 가져오기 const crypto =require('crypto');// algorithmconst 알고리즘 초기화 ='aes-192-cbc';// passwordconst 정의 및 초기화 password ='123456789'// keyconst key 초기화 중 =crypto.scryptSync(password, 'TutorialsPoint', 24);// iv vectorconst iv 초기화 중 =Buffer.alloc(16, 0);// 위와 같이 암호 생성 정의된 매개변수const cipher =crypto.createCipheriv(algorithm, key, iv);let encrypted ='';// datacipher.on('readable', () => { let chunk; while (null !==) 읽기 및 암호화 chunk =cipher.read())) { 암호화된 +=chunk.toString('base64'); }});//닫기/종료 이벤트 처리 eventcipher.on('end', () => { console.log( 암호화);});// 공개 및 비공개 곡선 키 인쇄...cipher.write('TutorialsPoint');cipher.end();console.log("Completed... !");

출력

C:\home\node>> 노드 createCipheriv.jsCompleted... !uqeQEkXy5dpJjQv+JDvMHw==