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

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

<시간/>

crypto.publicEncrypt()는 매개변수에 전달된 공개 키를 사용하여 버퍼 매개변수에 지정된 데이터를 암호화하는 데 사용됩니다. 반환된 데이터는 해당 개인 키를 사용하여 해독할 수 있습니다.

구문

crypto.publicEncrypt(키, 버퍼)

매개변수

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

  • – Object, String, Buffer 또는 KeyObject의 5가지 유형의 데이터를 포함할 수 있습니다.

    • – 이 필드에는 PEM으로 인코딩된 공개 또는 개인 키가 포함됩니다. 문자열, 버퍼 또는 keyObject 유형이 될 수 있습니다.

    • oaepHash – 이 필드는 OAEP 패딩 및 MGF1에 사용할 해시 함수를 포함합니다. 기본값은 'sha1'입니다.

    • oaepLabel – 이 필드에는 OAEP 패딩 값이 포함됩니다. 지정하지 않으면 레이블이 사용되지 않습니다.

    • 암호 - 개인 키에 대한 선택적 암호입니다.

    • 패딩 – crypto.constants에 정의된 선택적 값입니다.

    • 인코딩 – buffer, key, oaepLabel 또는 passphrase 값이 문자열일 때 사용해야 하는 인코딩 유형입니다.

  • 버퍼 – 이 필드는 암호화할 데이터 내용을 포함합니다. 가능한 버퍼 유형은 string, TypedArray, Buffer, ArrayBuffer, DataView입니다.

예시

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

노드 publicEncrypt.js

publicEncrypt.js

// crypto.publicEncrypt() 메서드의 흐름을 보여주는 Node.js 프로그램// 암호화 및 fs 가져오기 moduleconst crypto =require('crypto');const fs =require("fs");// 아래 생성 키 생성을 위한 함수function generateKeyFiles() { const keyPair =crypto.generateKeyPairSync('rsa', { modulusLength:520, publicKeyEncoding:{ 유형:'spki', 형식:'pem' }, privateKeyEncoding:{ 유형:'pkcs8', 형식 :'pem', 암호:'aes-256-cbc', 암호:'' } }); // 아래 이름으로 공개 키 파일 생성 fs.writeFileSync("public_key", keyPair.publicKey);}// 생성 keysgenerateKeyFiles();// 아래 함수를 사용하여 문자열 암호화 function encryptString (plaintext, publicKeyFile) { const publicKey =fs.readFileSync(공개키파일, "utf8"); //아래 매개변수로 publicEncrypt() 호출 const encrypted =crypto.publicEncrypt( publicKey, Buffer.from(plaintext)); return encryption.toString("base64");}// 암호화될 텍스트const plainText ="TutorialsPoint";// 암호화된 텍스트 정의 const encrypted =encryptString(plainText, "./public_key");// 일반 textconsole.log 인쇄 ("Plaintext:", plainText);// 암호화된 textconsole.log("Encrypted:", 암호화된) 인쇄;

출력

C:\home\node>> 노드 publicEncrypt.jsPlaintext:TutorialsPointEncrypted:kgnqPxy/n34z+/5wd7MZiMAL5LrQisTLfZiWoSChXSvxgtifMQaZ56cbF+twA55olM0rFfnuV6qqtca8> 

예시

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

// crypto.publicEncrypt() 메서드의 흐름을 보여주는 Node.js 프로그램// 암호화 및 fs 가져오기 moduleconst crypto =require('crypto');const fs =require("fs");// 아래 생성 키 생성을 위한 함수function generateKeyFiles() { const keyPair =crypto.generateKeyPairSync('rsa', { modulusLength:520, publicKeyEncoding:{ 유형:'spki', 형식:'pem' }, privateKeyEncoding:{ 유형:'pkcs8', 형식 :'pem', 암호:'aes-256-cbc', 암호:'' } }); // 공개 키 파일 생성 fs.writeFileSync("public_key", keyPair.publicKey);}// KeygenerateKeyFiles();// 아래 함수를 사용하여 문자열 암호화function encryptString (plaintext, publicKeyFile) { const publicKey =fs.readFileSync( 공개키파일, "utf8"); //아래 매개변수로 publicEncrypt() 호출 const encrypted =crypto.publicEncrypt( publicKey, Buffer.from(plaintext)); return encryption;}// 암호화될 텍스트const plainText ="Hello TutorialsPoint!";// 암호화된 텍스트 정의const encrypted =encryptString(plainText, "./public_key");// 일반 textconsole.log("Plaintext:" 인쇄) , plainText);// 암호화된 bufferconsole.log("Buffer:", 암호화된) 인쇄;

출력

C:\home\node>> node publicEncrypt.jsPlaintext:Hello TutorialsPoint!Buffer: