使用 JCEKS 密钥库在 NodeJS 中解密令牌
Decrypting a token in NodeJS with a JCEKS keystore
在这种情况下,我使用 JCEKS 密钥库中的一个密钥在源头加密令牌。令牌进入 NodeJS 服务器,在那里应该未加密以使用其中的数据。据我了解,无法从该格式中提取用于解密令牌的私钥,因此仅使用加密模块对其进行解密是行不通的。我玩过 node-keytool,并根据此处的示例列出了密钥:https://github.com/FrankGrimm/node-keytool/blob/master/examples/listcontent.js.
但是,我完全不知道如何使用该模块来解密令牌。任何有关如何这样做的建议,无论是使用该模块还是其他模块,都将不胜感激。
这似乎是做不到的,或者至少在没有大量工作的情况下是做不到的。在 Java 中编写解密器然后在 Node 中创建模块更容易,如下所示:
const exec = require('child_process').exec;
const fs = require('fs');
const start = function (data, resolve, reject) {
let child = exec('java -jar java/out/artifacts/decrypter_jar/decrypter.jar ' + data,
function (error, stdout, stderr){
console.log('Output -> ' + stdout);
if(stdout){
resolve(stdout);
}
else {
reject('Empty response from JAR');
return;
}
if(error !== null){
console.log("Error -> "+error);
reject(error);
}
});
};
module.exports = {start};
在这种情况下,我使用 JCEKS 密钥库中的一个密钥在源头加密令牌。令牌进入 NodeJS 服务器,在那里应该未加密以使用其中的数据。据我了解,无法从该格式中提取用于解密令牌的私钥,因此仅使用加密模块对其进行解密是行不通的。我玩过 node-keytool,并根据此处的示例列出了密钥:https://github.com/FrankGrimm/node-keytool/blob/master/examples/listcontent.js.
但是,我完全不知道如何使用该模块来解密令牌。任何有关如何这样做的建议,无论是使用该模块还是其他模块,都将不胜感激。
这似乎是做不到的,或者至少在没有大量工作的情况下是做不到的。在 Java 中编写解密器然后在 Node 中创建模块更容易,如下所示:
const exec = require('child_process').exec; const fs = require('fs');
const start = function (data, resolve, reject) {
let child = exec('java -jar java/out/artifacts/decrypter_jar/decrypter.jar ' + data,
function (error, stdout, stderr){
console.log('Output -> ' + stdout);
if(stdout){
resolve(stdout);
}
else {
reject('Empty response from JAR');
return;
}
if(error !== null){
console.log("Error -> "+error);
reject(error);
}
});
};
module.exports = {start};