繁体   English   中英

如何在 Javascript/jquery 上使用 RSA 私钥对数据进行签名

[英]How to sign data with RSA private Key on Javascript/jquery

我得到了这个 C# 代码,但我需要用 Javascript 来完成。 这个想法是我需要在浏览器没有互联网的情况下执行这段代码,基本上,我必须在本地存储中保存一些数据,然后使用它们执行此方法以生成私钥。

private static string SignData(string ppath,string ppass)
{
    X509Certificate2 keyStore = new X509Certificate2(ppath, ppass);
    RSA privateKey = keyStore.GetRSAPrivateKey();
    byte[] iicSignature = privateKey.SignData(Encoding.ASCII.GetBytes(pConcat), HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);

    byte[] iic = ((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).ComputeHash(iicSignature);
    return BitConverter.ToString(iic).Replace("-", string.Empty);
}

PS:我设法提取了私钥并将其保存到本地存储。现在我需要使用此密钥、SHA256 算法和 pkcs1 填充对一些数据进行签名。

首先使用Bouncy Castle从证书中提取您的私钥并将其转换为 pkcs8。

然后,您将需要找到一个使用私钥对数据进行签名的 javascript 库。 我建议你使用大多数浏览器都支持的window.crypto库。 它有一个名为window.crypto.subtle.sign()的方法,该方法使用您必须使用window.crypto.subtle.importKey()导入的私钥对数据进行签名,您可以 在此处阅读有关此库的更多信息。

最后,您将需要一个 md5 库来散列签名数据。 你可以在这里找到。

这主要是您在此聊天中谈论的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM