这是我打算做的。
- 用户调用我的网站时生成的 RSA 私钥/公钥
- 给浏览器公钥
- 在会话中保存私钥(node.js,express-session)
- 当用户尝试登录使用公钥加密 id 和 pw 时,使用我保存在会话中的私钥解密它
问题来了。我这样保存了私钥
app.get('/', function(req, res) {
var passPhrase = 'secret key';
bits = 1024;
req.session.rsa = cryptico.generateRSAKey(passPhrase, bits);
....
}
并且 RSA 密钥似乎很长,我附上了图像 -> 我首先生成的 RSA(图像)
但是,当我从另一个 AJAX 的会话中调用 RSA 密钥时,它突然变短了,我无法解密消息,因为出现错误,并且显示“您的私钥与公钥不匹配”
app.post('/login', function(req, res) {
console.log(req.session.rsa);
}
我从 app.post('/login') 中的会话加载的 RSA
由于这个问题,我不能使用 RSA 私钥/公钥来加密/解密 id/pw。为什么会发生?为什么 req.session 中的数据被破坏了?我不明白为什么它的价值会改变。
这是快速会话的设置。这里有问题吗?或任何其他原因?
app.use(session({
store: new RedisStore({
host: 'localhost',
port: 6379,
client: redis,
resave: false
}),
secret: 'keyboard cat',
cookie: {
maxAge: 1000 * 60 * 60
},
resave : false,
saveUninitialized : true
}));