无法掌握如何使用私钥安全地签署JWT

时间:2014-09-08 04:41:45

标签: javascript signing jwt

我正在查看引用this example herejavascript functionalityJWT

我正在尝试使用javasrcipt来签署一段数据。但是,它说我必须使用私有RSA密钥,它不允许您使用公钥。

我的目标是通过PHP提交表单,调用此javascript函数并加密数据。

请原谅我的无知,但你怎么能在javascript中使用私人RSA密钥并同时保密?

看来您必须以某种方式为其提供私钥,并且在Web浏览器中使用简单的开发人员工具的用户不会看到该私钥吗?

function _genJWS() {
  var sHead = '{"alg":"RS256"}';
  var sPayload = '{"data":"HI","exp":1300819380}';
  var sPemPrvKey = document.form1.pemprvkey1.value;

  var jws = new KJUR.jws.JWS();
  var sResult = null;
  try {
    sResult = jws.generateJWSByP1PrvKey(sHead, sPayload, sPemPrvKey);
    document.form1.jwsgenerated1.value = sResult;
  } catch (ex) {
    alert("Error: " + ex);
  }
}

1 个答案:

答案 0 :(得分:0)

您所寻找的不是JWS(签名),而是JWE(加密)。

如果要使用JWE将安全数据发送到服务器,则必须:

  • 获取服务器的公钥
  • 使用此公钥加密您的数据并生成JWE
  • 将您的JWE发送到服务器。

据我所知,没有javascript库可以生成JWE(我可能错了,但我一无所获)。