node 기반 RSA 복호화 방법 절차
준비 하 다
전단 은jsencrypt.js을 이용 하여 암호 화 되 고 백 엔 드 는node-rsa를 이용 하여 공개 키 를 생 성하 고 복호화 합 니 다.
실현
저 는 koa 2 를 사용 하여 초기 화 된 프로젝트 입 니 다.우선,전단 페이지 에 암호 화 된 데 이 터 를 표시 하고 처리 해 야 하기 때문에 views 에 index.html 를 직접 새로 만 들 었 습 니 다.html 로 템 플 릿 을 배우 지 않 기 위해 시간 을 들 였 습 니 다.
index 의 경로 수정,
router.get('/', async (ctx, next) => {
await ctx.render('index.html');
});
html 에 jsencrypt.js 를 도입 합 니 다.인터페이스 내용 은 입력 상자 와 명령 을 보 내 는 단추 만 있 습 니 다.
<body>
<input type="text" id="content"/>
<button id="start">gogogog</button>
</body>
<script src="/javascripts/jsencrypt.js"></script>
<script>
document.getElementById('start').onclick = function() {
//
fetch('/publicKey').then(function(res){
return res.text();
}).then(function(publicKey) {
//
var encrypt = new JSEncrypt();
encrypt.setPublicKey(publicKey);
var encrypted = encrypt.encrypt(document.getElementById('content').value);
//
fetch('/decryption', {
method: 'POST',
body: JSON.stringify({value:encrypted})
}).then(function(data) {
return data.text();
}).then(function(value) {
console.log(value);
});
});
};
</script>
단 추 를 누 르 면 입력 상자 의 값 을 암호 화하 고 서버 에 복호화 하고 인쇄 합 니 다.프론트 엔 드 에 서 는 publicKey 와 decryption 인 터 페 이 스 를 사용 하여 서버 의 실현 을 살 펴 보 았 습 니 다.
먼저 node-rsa 패 키 지 를 도입 하고 인 스 턴 스 를 만 든 다음 에 공개 키 를 출력 합 니 다.그 중에서 setOptions 는 반드시 추가 해 야 합 니 다.오류 가 발생 할 수 있 습 니까?
const NodeRSA = require('node-rsa');
const key = new NodeRSA({b: 1024});
// https://github.com/rzcoder/node-rsa/issues/91
key.setOptions({encryptionScheme: 'pkcs1'}); // , 。
publickey(GET)는 공개 키 를 가 져 오 는 데 사 용 됩 니 다.내 장 된 방법 만 호출 하면 됩 니 다.
router.get('/publicKey', async (ctx, next) => {
var publicDer = key.exportKey('public');
var privateDer = key.exportKey('private');
console.log(' :', publicDer);
console.log(' :', privateDer);
ctx.body = publicDer;
});
공개 키 는 전단 암호 화 에 사용 되 고 백 엔 드 는 비밀 키 를 사용 하여 복호화 합 니 다.
router.post('/decryption', async (ctx, next) => {
var keyValue = JSON.parse(ctx.request.body).value;
const decrypted = key.decrypt(keyValue, 'utf8');
console.log('decrypted: ', decrypted);
ctx.body = decrypted;
});
복호화 할 때 decrypt 를 호출 하여 복호화 하면 전단 콘 솔 에서 해당 하 는 값 을 출력 할 수 있 습 니 다.데모 상세 코드
이렇게 많은 말 을 하면 코드 를 직접 보 는 것 이 가장 직관 적 입 니 다.상세 한 코드 는 다음 과 같 습 니 다.demo
npm i & npm run start
3000 포트 에 접근 하면 됩 니 다.4.실제 항목
npm 설치 방식(vue 또는 react)을 사용 하 는 항목 에서 다음 과 같이 사용 할 수 있 습 니 다.
npm i jsencrypt
//
import { JSEncrypt } from 'jsencrypt';
프로젝트 주 소 를 볼 수 있 습 니 다.https://github.com/2fps/blooog이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법Express에서 오류를 처리하는 여러 가지 방법이 있습니다. 이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다. 또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다. 이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.