gpt4 book ai didi

node.js - 摘要对于 rsa key 来说太大

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:25 27 4
gpt4 key购买 nike

我想在我的 Node js 项目中实现 jwt 授权,如下 post

我已经安装

 $ npm install jsonwebtoken

在我的代码中我有

const jwt = require('jsonwebtoken');
const fs = require('fs');
const payload = somedata;
var privateKEY = fs.readFileSync('../Keys/private.key', 'utf8');
onst token = jwt.sign({ payload }, privateKEY/*config.auth.jwt_secret*/, { expiresIn: '1d', algorithm: 'RS512' });

当我运行此脚本时,出现以下错误

 error:04075070:rsa routines:RSA_sign:digest too big for rsa key

我使用 this 生成的私钥512 位工具。我还尝试将 RS512 更改为 RS256 并且它工作正常,但在这种情况下我无法验证 token 。

什么原因导致此错误?

最佳答案

我通过更新私钥的 key 大小解决了该问题。我也不擅长密码学,但据我了解https://github.com/auth0/node-jsonwebtoken/issues/739问题。您的私钥的 key 大小应至少为 2048 位。

下面是生成 key 大小 2048 位的 RSA 私钥的命令。

openssl genrsa -out private.key 2048
const jwt = require('jsonwebtoken');
const fs = require('fs');
const payload = somedata;
var privateKey = fs.readFileSync('private.key', 'utf8');
onst token = jwt.sign({ payload }, privateKey, { expiresIn: '1d', algorithm: 'RS512' });
# extra information
# generate public key from above private.key
openssl rsa -in private.key -outform PEM -pubout -out public.key

关于node.js - 摘要对于 rsa key 来说太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56633211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com