【问题标题】:Having trouble grasping how to securely sign JWT with Private Key无法掌握如何使用私钥安全地签署 JWT
【发布时间】:2014-11-01 06:40:35
【问题描述】:

我正在查看this example here,它指的是JWTjavascript functionality

我正在尝试使用 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);
  }
}

【问题讨论】:

    标签: javascript signing jwt


    【解决方案1】:

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

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

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

    据我所知,没有能够生成 JWE 的 javascript 库(我可能是错的,但我什么也没找到)。

    【讨论】:

      猜你喜欢
      • 2019-08-27
      • 2021-02-06
      • 2019-05-26
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 2013-05-30
      • 2019-08-01
      • 2018-05-22
      相关资源
      最近更新 更多