【问题标题】:Getting RSA key size from modulus string in javascript从javascript中的模数字符串获取RSA密钥大小
【发布时间】:2019-07-19 18:15:32
【问题描述】:

在 C# 中,我们有一种方法可以从模数字符串中计算出 RSA 密钥大小,如下所示,

在 JavaScript 或 typescript 中是否有类似的方法来获取密钥大小?

var bytesModulus = Convert.FromBase64String(modulusString);

using (var rsa = new RSACryptoServiceProvider())
{
 var rsaKeyInfo = rsa.ExportParameters(false);

 rsaKeyInfo.Modulus = modulus;
 rsa.ImportParameters(rsaKeyInfo);

 return rsa.KeySize;
}

【问题讨论】:

标签: javascript typescript rsa public-key-encryption rsacryptoserviceprovider


【解决方案1】:

假设密钥遵循使模数介于2^(8n - 1)(2^(8n) - 1) 之间的规则,您只需要知道模数的字节长度(然后乘以 8)。

删除任何空白后,答案将是:

  • 十六进制:字符串length * 4(长度/2为字节,*8​​为位)
  • Base64: ((length + 3) / 4) * 24 — 或者如果您只获得 =-padded 版本:length * 6(长度 / 4 * 3 字节,* 8 位,当输入已知时减少到 * 3 * 2 4 的倍数)
  • 十进制字符串:更难。如果没有 bignum 库,您只能绑定它:它大于 length * 3.3,小于 length * 6.7(或 3 和 7,如果您愿意)。
  • 其他:计算字节长度,乘以 8。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 2021-09-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2018-02-03
    相关资源
    最近更新 更多