.NET Core SHA-256 with RSA 根據私鑰進行簽名


第一步獲取簽名證書私鑰

        /// <summary>
        /// 獲取簽名證書私鑰
        /// </summary>
        /// <param name="priKeyFile">證書文件路徑</param>
        /// <param name="keyPwd">密碼</param>
        /// <returns></returns>
        private static RSA GetPrivateKey(string priKeyFile, string keyPwd)
        {
            var pc = new X509Certificate2(priKeyFile, keyPwd, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);
            return (RSA)pc.PrivateKey;
        }

第二步根據私鑰對數據進行簽名

        /// <summary>
        /// 根據證書簽名數據
        /// </summary>
        /// <param name="data">要簽名的數據</param>
        /// <param name="certPah">證書路徑</param>
        /// <param name="certPwd">密碼</param>
        /// <returns></returns>
        public string Sign(string data, string certPah, string certPwd)
        {
            var rsa = GetPrivateKey(certPah, certPwd);

            var rsaClear = new RSACryptoServiceProvider();

            var paras = rsa.ExportParameters(true);
            rsaClear.ImportParameters(paras);

            var signData = rsa.SignData(Encoding.UTF8.GetBytes(data), HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
            return Convert.ToBase64String(signData);
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM