【问题标题】:how to get the RSA/ECB/PKCS1Padding in javascript/react to generate a key如何在 javascript/react 中获取 RSA/ECB/PKCS1Padding 以生成密钥
【发布时间】:2022-12-22 09:09:12
【问题描述】:

我需要使用 RSA/ECB/PKCS1Padding 算法生成一个密钥以发送到服务器以检索数据,服务器仅接受使用该算法的密钥。服务端是用Java写的,Java里面有这么一个算法。

但是在 javascript 中,在文档中,在算法列表中,这个算法丢失了,有什么解决办法吗?

你可以在这里看到例子https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey

这是一个 Node js 算法列表,其中也缺少。 https://nodejs.org/api/webcrypto.html#algorithm-matrix

我尝试使用不同的包生成密钥,我尝试不使用包,使用 webAPI SubtleCrypto.generateKey() 方法但没有结果。

【问题讨论】:

    标签: javascript reactjs cryptography rsa cryptojs


    【解决方案1】:

    我需要使用 RSA/ECB/PKCS1Padding 算法生成密钥

    首先:忘记那个欧洲央行。 ECB 模式是对明文消息的后续部分多次使用密码。但是,Java 只允许每条消息调用一次。它应该读取 "None" 的模式。

    PKCS#1 填充是对明文消息执行的填充。它需要有一个安全的填充,因为“教科书 RSA”——即基本的模幂——是不安全的。但是,密钥本身仅用于模幂运算。

    根本没有 PKCS#1 填充的特定密钥这样的东西;您可以使用任何一般生成的 RSA 密钥。也许是您的 Java 提供商接受该算法字符串 "RSA/ECB/PKCS1Padding" 用于调用 KeyPairGenerator.getInstance(String alg) 实例,但它将默认为 "RSA",您可以在 JavaScript 中执行相同的操作。

    当你采用生成的加密密钥然后您应该使用 PKCS#1 v1.5 兼容填充,因为这就是 "PKCS1Padding" 在 Java 中的含义。在从未有过的标准 OAEP 版本中也有定义,因此 Java 中的算法字符串现在已经完全过时并且 - 嗯 - 错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 2013-09-30
      相关资源
      最近更新 更多