不要尝试阅读缩小的代码,而是查看从 npm 链接的主页(也发现是我的热门谷歌点击之一),它们都链接到github中的代码,该代码的格式和注释都很好。当前代码实际上支持 RSA 签名以及加密,以及密钥生成和 OpenSSL 兼容 PEM 文件的读写,尽管根据评论我认为签名可能不在您的 2.3.1 版本中,这似乎没有在此存储库中或至少未标记。RSA 核心位于
https://github.com/travist/jsencrypt/blob/master/lib/jsbn/rsa.ts清楚地表明它使用 'pkcs1' 'type 1' 填充作为签名,使用 'type 2' 进行加密;这些是来自 PKCS1 v1.5 的方案,现在在当前PKCS1 v2中重新命名为 RSASSA-PKCS1-v1_5(RSASSA = RSA Signature Scheme with Annex)和 RSAES-PKCS1-v1_5(RSAES = RSA Encryption Scheme)。Old-PKCS1 type 1 是确定性的;类型 2 使用https://github.com/travist/jsencrypt/blob/master/lib/jsbn/rng.ts随机分配,您可以自行判断。