이 글은 주로 Node.js 비대칭 암호화 방법과 코드 예제를 공유합니다. 이에 관심이 있는 친구들은 참고할 수 있습니다.
SegmentFault에서 한 형제가 제기한 "비대칭 암호 해독 오류" 질문에 방금 답변했습니다. 이것은 Node.js의 보안 애플리케이션입니다. 동일한 문제에 직면한 사람들이 많을 것입니다. 답변된 질문을 바탕으로 여기에 간략한 요약이 있습니다.
비대칭 암호화에 대한 이론적 지식은 저자의 이전 기사 "NODEJS Advanced: Theory of CRYPTO Module"을 참조할 수 있습니다.
전체 코드는 "Nodejs 학습 노트"에서 찾을 수 있습니다. 또한 프로그래머 Xiaoka의 GitHub를 팔로우하실 수도 있습니다.
Node.js에서 보안을 담당하는 모듈은 crypto입니다. 비대칭 암호화에서 공개키 암호화, 개인키 복호화, 이에 대응하는 암호화 및 복호화 API는 다음과 같습니다.
암호화 기능:
crypto.publicEncrypt(key, buffer)
복호화 기능:
crypto.privateDecrypt(privateKey, buffer)
다음 utils.js
// utils.js const crypto = require('crypto'); // 加密方法 exports.encrypt = (data, key) => { // 注意,第二个参数是Buffer类型 return crypto.publicEncrypt(key, Buffer.from(data)); }; // 解密方法 exports.decrypt = (encrypted, key) => { // 注意,encrypted是Buffer类型 return crypto.privateDecrypt(key, encrypted); };
테스트 코드 app.js가 있다고 가정합니다.
const utils = require('./utils'); const keys = require('./keys'); const plainText = '你好,我是程序猿小卡'; const crypted = utils.encrypt(plainText, keys.pubKey); // 加密 const decrypted = utils.decrypt(crypted, keys.privKey); // 解密 console.log(decrypted.toString()); // 你好,我是程序猿小卡
공개 키와 개인 키 키를 연결합니다.keys.js:
exports.privKey = `-----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8ZECKnnO8XRDwttBbf5EmG0qV 8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kAZ6CZZo1vYgtzhlFnxd4V7Ra+ aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEjeogAOgXACaIqiFyrk3wIDAQAB AoGBAKdrunYlqfY2fNUVAqAAdnvaVOxqa+psw4g/d3iNzjJhBRTLwDl2TZUXImEZ QeEFueqVhoROTa/xVg/r3tshiD/QC71EfmPVBjBQJJIvJUbjtZJ/O+L2WxqzSvqe wzYaTm6Te3kZeG/cULNMIL+xU7XsUmslbGPAurYmHA1jNKFpAkEA48aUogSv8VFn R2QuYmilz20LkCzffK2aq2+9iSz1ZjCvo+iuFt71Y3+etWomzcZCuJ5sn0w7lcSx nqyzCFDspQJBAN3O2VdQF3gua0Q5VHmK9AvsoXLmCfRa1RiKuFOtrtC609RfX4DC FxDxH09UVu/8Hmdau8t6OFExcBriIYJQwDMCQQCZLjFDDHfuiFo2js8K62mnJ6SB H0xlIrND2+/RUuTuBov4ZUC+rM7GTUtEodDazhyM4C4Yq0HfJNp25Zm5XALpAkBG atLpO04YI3R+dkzxQUH1PyyKU6m5X9TjM7cNKcikD4wMkjK5p+S2xjYQc1AeZEYq vc187dJPRIi4oC3PN1+tAkBuW51/5vBj+zmd73mVcTt28OmSKOX6kU29F0lvEh8I oHiLOo285vG5ZtmXiY58tAiPVQXa7eU8hPQHTHWa9qp6 -----END RSA PRIVATE KEY----- `; exports.pubKey = `-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8 ZECKnnO8XRDwttBbf5EmG0qV8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kA Z6CZZo1vYgtzhlFnxd4V7Ra+aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEje ogAOgXACaIqiFyrk3wIDAQAB -----END PUBLIC KEY----- `;
위의 내용은 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
WeChat 애플릿에서 이미지 미리보기 기능을 구현하는 방법
WeChat 애플릿을 사용하여 MUI 숫자 입력 상자 효과를 구현하는 방법
render in Vue 기본 기능 사용법(자세한 튜토리얼)
WeChat 미니 프로그램에서 갤러리 슬라이더 구성 요소를 사용하는 방법
스크롤 뷰 구성 요소를 사용하여 WeChat 미니 프로그램에서 스크롤 애니메이션을 구현하는 방법
위 내용은 Node.js의 비대칭 암호화에 대한 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!