zoukankan      html  css  js  c++  java
  • C# .NET 私钥 RSA2,SHA256,签名

    私钥长度2048

    --

    /// <summary>
                 /// 生成签名
                 /// </summary>
                 /// <param name="str">需签名的数据</param>
                 /// <param name="privateKey">私钥</param>
                 /// <param name="encoding">编码格式 默认utf-8</param>
                 /// <returns>签名后的值</returns>
            public static string Signature(string str, string privateKey, string encoding)
            {
                //SHA256withRSA
                //根据需要加签时的哈希算法转化成对应的hash字符节
                //byte[] bt = Encoding.GetEncoding("utf-8").GetBytes(str);
                byte[] bt = Encoding.GetEncoding(encoding).GetBytes(str);
                var sha256 = new SHA256CryptoServiceProvider();
                byte[] rgbHash = sha256.ComputeHash(bt);
    
                RSACryptoServiceProvider key = new RSACryptoServiceProvider();
                key.FromXmlString(privateKey);
                RSAPKCS1SignatureFormatter formatter = new RSAPKCS1SignatureFormatter(key);
                formatter.SetHashAlgorithm("SHA256");//此处是你需要加签的hash算法,需要和上边你计算的hash值的算法一致,不然会报错。
                byte[] inArray = formatter.CreateSignature(rgbHash);
                return Convert.ToBase64String(inArray);
    
            }

    --

  • 相关阅读:
    poj 3411 Paid Roads
    uva 111 A History Grading
    hdu 4248 A Famous Stone Collector
    阶乘模版
    uva Coin Change
    POJ图论分类
    求 组合数 dp
    判断点是否在三角形中(三角形的有向积计算)
    扩展欧几里德
    UVA 116 Unidirectional TSP (白书dp)
  • 原文地址:https://www.cnblogs.com/runliuv/p/11818206.html
Copyright © 2011-2022 走看看