[英]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.