簡體   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