zoukankan      html  css  js  c++  java
  • .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);
            }
  • 相关阅读:
    简历的快速复制
    使用stringstream对象简化类型转换
    猴子吃桃
    new和delete运算符
    绘制正余弦曲线
    计算学生的平均成绩
    判断是否为回文字符串
    统计各种字符个数
    验证用户名
    回溯法(挑战编程)
  • 原文地址:https://www.cnblogs.com/net666/p/10766737.html
Copyright © 2011-2022 走看看