当前位置: 首页 > article >正文

openssl生成加密,公钥实现非对称加密

私钥用于加密,公钥用于解密
私钥用于颁发token,公钥用于验证token,公钥不能颁发token
私钥和公钥是一对,不能单独使用,利用私钥生成公钥,利用公钥进行解密
使用openssl来生成一对私钥和公钥:openssl是git bash自带的

生成方法:
openssl
genrsa -out private.key 2048
rsa -in private.key -pubout -out public.key

非对称加密

const privateKey = fs.readFileSync("../src/keys/private.key")
const publicKey = fs.readFileSync("../src/keys/public.key")

 // 取出用户信息
   const { id, username } = ctx.user
   const payload = { id, username }
   // 颁发token
   const token = jwt.sign(payload, privateKey, {
     expiresIn: 60 ** 60 * 24, // 一天过期
     // 指定非对称加密算法, secretOrPrivateKey has a minimum key size of 2048 bits for RS256
     // 所以在生成密钥时要指定2048位
     algorithm: "RS256",
   })
   
   // 将token返回给前端
   ctx.body = {
     code: 0,
     message: "用户登录成功",
     data: {
       user_id: ctx.user.id,
       username: ctx.user.username,
       token,
     },
   }

http://www.kler.cn/a/383153.html

相关文章:

  • Kubernetes(K8s)相关漏洞介绍
  • Hadoop生态圈框架部署(五)- Zookeeper完全分布式部署
  • qt QDragEnterEvent详解
  • QGIS:HCMGIS插件
  • 文心一言 VS 讯飞星火 VS chatgpt (383)-- 算法导论24.5 3题
  • 内网远程连接解决方案【Frp】
  • 鸟害防治新选择:特力康|固定式智能激光驱鸟器的优势与挑战
  • 企业如何做好进销存管理?工厂进销存实现步骤
  • 小物体检测模型
  • 全网最全软件测试面试宝典,快看!
  • 解决 Fail to pip install mlc-llm
  • scala set集合
  • ubuntu中安装mysql
  • SQL注入(1)
  • 一款根据图片内的文字,把图片分类的软件
  • 驱动芯片 GC1277:电脑散热风扇驱动的卓越之选
  • 【ARM Linux 系统稳定性分析入门及渐进 2.2 -- Crash 命令 Crash Usage】
  • 什么是Es6,有什么特点
  • Ubuntu18.04服务器非root用户在虚拟环境下的python版本设定
  • 在软件开发流程中使用AI大模型有哪些优势?
  • Tokenformer:基于参数标记化的高效可扩展Transformer架构
  • C-DTL698电表 转 IEC61850 协议项目案例
  • linux dpkg 查看 安装 卸载 .deb
  • C++ --- Socket套接字的使用
  • LeetCode136只出现一次的数字I
  • Javaweb选课系统-开源计划-起源-001-完全免费开源