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==