从javascript中的模数字符串获取RSA密钥大小
Posted
技术标签:
【中文标题】从javascript中的模数字符串获取RSA密钥大小【英文标题】:Getting RSA key size from modulus string in javascript 【发布时间】: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;
【问题讨论】:
你看到this library 【参考方案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。
【讨论】:
以上是关于从javascript中的模数字符串获取RSA密钥大小的主要内容,如果未能解决你的问题,请参考以下文章
如何从字符串获取 PKCS8 RSA 私钥/从 XML 获取 RSA 密钥对