从JavaScript中的模数字符串获取RSA密钥大小

时间:2019-07-19 18:15:32

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

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

是否有类似的方法来获取JavaScript或打字稿中的密钥大小?

var bytesModulus = Convert.FromBase64String(modulusString);

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

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

 return rsa.KeySize;
}

1 个答案:

答案 0 :(得分:0)

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

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

  • 十六进制:字符串length * 4(长度/ 2为字节,* 8为位)
  • Base64:((length + 3) / 4) * 24 —或仅获得=填充版本:length * 6(长度/ 4 * 3字节,* 8表示位,当输入时减小为* 3 * 2已知是4的倍数)
  • 十进制字符串:更难。如果没有bignum库,则只能对其进行绑定:它大于length * 3.3,小于length * 6.7(或者,如果愿意,可以小于3和7)。
  • 其他:找出字节的长度乘以8。