公钥和私钥 生成地址:http://www.metools.info/code/c80.html

using System;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;

namespace ConsoleApp2
{
    class Program
    {

static string eventId = "A57";
        static string userId = "330421998";
        static string password = "jsyz330421998#zyb";
        static string requestTime = DateTime.Now.ToString("yyyy-MM-ddHH:mm:ss");
        static string headSign = "";
        static void Main(string[] args)
        {

string str = eventId + requestTime + userId+password;
            headSign = GenerateMD5(str);
            /// <summary>
            /// 发送数据
            /// </summary>
             string postText = @"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:ser='http://server.zhejian.com/'>
            <soapenv:Header/>
   <soapenv:Body>
      <ser:all>
         <!--Optional:-->
          <arg0><![CDATA[<?xml version='1.0' encoding='UTF-8'?>
<data>
<header>
<eventId>" + eventId + @"</eventId>
<hosId>" + userId + @"</hosId>
<requestTime>" + requestTime + @"</requestTime>
<headSign>" + headSign + @"</headSign>
<bodySign>" + RsaSign(body, privateKey) + @"</bodySign>
</header>" + body + @"</data>]]></arg0>
      </ser:all>
   </soapenv:Body>
</soapenv:Envelope>";
            Console.WriteLine(headSign);
            //SendPostRequestJson(postText);
           var result= PostWebRequest("http://120.26.209.208:8083/data/ws/TJ?wsdl", postText,Encoding.UTF8);
            Console.WriteLine(result);

Console.ReadLine();
        }

private static string PostWebRequest(string postUrl, string paramData, Encoding dataEncode)
        {
            string ret = string.Empty;
            try
            {
                byte[] byteArray = dataEncode.GetBytes(paramData); //转化
                HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
                webReq.Method = "POST";
                webReq.ContentType = "application/x-www-form-urlencoded";

webReq.ContentLength = byteArray.Length;
                Stream newStream = webReq.GetRequestStream();
                newStream.Write(byteArray, 0, byteArray.Length);//写入参数
                newStream.Close();
                HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
                StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
                ret = sr.ReadToEnd();
                sr.Close();
                response.Close();
                newStream.Close();
            }
            catch (Exception ex)
            {
            }
            return ret;
        }
       
        /// <summary>
        /// 
        /// </summary>
        /// <param name="data"></param>
        /// <param name="privatekey"></param>
        /// <returns></returns>
        public static string RsaSign(string data, string privatekey)
        {
            CspParameters CspParameters = new CspParameters();
            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048, CspParameters);
            byte[] bytes = Encoding.UTF8.GetBytes(data);
            privatekey = RSA.ToXmlString(true);
            RSA.FromXmlString(privatekey);
            byte[] sign = RSA.SignData(bytes, "SHA256");

return Convert.ToBase64String(sign);
        }
      
        public static string Sign(string contentForSign, string privateKey)
        {
            //转换成适用于.Net的秘钥
            //var netKey = privateKey;

var rsa = new RSACryptoServiceProvider();
            privateKey = rsa.ToXmlString(true);
            rsa.FromXmlString(privateKey);
            
            //创建一个空对象
            var rsaClear = new RSACryptoServiceProvider();
            var paras = rsa.ExportParameters(true);
            rsaClear.ImportParameters(paras);
            //签名返回
            using (var sha256 = new SHA256CryptoServiceProvider())
            {
                var signData = rsa.SignData(Encoding.UTF8.GetBytes(contentForSign), sha256);
                return EncodeBase64("utf-8", BytesToHex(signData));
            }
        }
        ///编码
        public static string EncodeBase64(string code_type, string code)
        {
            string encode = "";
            byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);
            try
            {
                encode = Convert.ToBase64String(bytes);
            }
            catch
            {
                encode = code;
            }
            return encode;
        }
        public static string BytesToHex(byte[] data)
        {
            StringBuilder sbRet = new StringBuilder(data.Length * 2);
            for (int i = 0; i < data.Length; i++)
            {
                sbRet.Append(Convert.ToString(data[i], 16).PadLeft(2, '0'));
            }
            return sbRet.ToString();
        }
        #region  测试字符串

/// <summary>
        /// 私钥
        /// </summary>
        static string privateKey = @"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCl7G6LVrBEipA2Otcc6Ot/+xFUDXxaw2Vw57PWiDrLOUtL7ASEy5q9JKpt3E5YlxBwrHZasY6T9FAOtqK81YTJ1auZWxGgdXo0UygXwWxwtcbM6Mu2iKuMCMi1/yj23Htf6Q0e9/9N1Puik7iLF579AMvdpqlCih09cE41itM7DldOJbt9s0iqgJEXX/tmE83yXnX3E3cpuBDDsFRyB2Z4EMEpSlc1fxwQPOzt9aw2IF81gjNpkZ5ugGqAWbn89JO1rFpdrEVQVJDZbcq/2RacGRf+0BD0P1SuigRRT1W8mg1Ne57hFi9Lw9FaDTRYzKsVvkAk9euwRfwMkb+BgvDVAgMBAAECggEBAIEWzXqC22i4FTLb3HiVjoNnpjeqtlE3LDkHS5dhLbzmuno7Cdj3P1Bgsmf+usWZ4iSHSR2OfssFjTOlTD92L3WIU5VgkPox6/3BpLO2vNOD2UOa6sL82dp9CwrtlcVaDHK2MoshjvPS/GOkYjN1ETDt6a5s98rZAZ7HPVHSzDxozziGIc+py22MLmMcSx2bfZ0rAVOzf1Fk6/I3Fw4O5hMQJovfz6m73LMaKJ1dvy2qTMSpi71N6FNEaPxlaP0RpjrMga/NsvgxOxM7tTKfE/6+CHQvS9og0jjZS/t3PLpBbcGj1RlLPonUU6di6oU9FA3Y59RjXpB2aD03fvojnBECgYEAz1un2IF6qIJWyIv7lRR7iZAUtxSnikCjh2xz0/ufGNJEvmRjM7mVbKip7J5Qyvqo4AvqwrF6pYe2Cp7TILeMk3JC9PHD8JWXpM0LV2Ml2fMOT+tFlDwD3IDDuG2Fphib11qeMO0+wZkZ3f4MLKbjGKY9Fix6y0WBtcftZGmNSwMCgYEAzNiJmn8BM16mmbv1uvWuYfFq6RXuRSGc9GNpXHe+QjC9uT6ddLFL1uStjXU6Vf+r+1ymwwFs1vSA7d1ljhKFukVySmNVylOwtxY2GtgMrJg+DtFy1DwilawuLrSEGNQkP4h0176zI5sSZUrmfZo3Xh/UcLy3rr9KtSYtXLZNYUcCgYAY+FyaAd2XdTqmI9VD+pd11VfpRB940pfesvyvxlk+T/PfSY94pxyLXTQ5PkdUaiLz9/tpPp4aWOFfHgkmo3PWPag6fvKtghYkzlxTRalFObO7hAV4+FEuuILZLrctbUE3Cb6K/cbU4W7wAKvOpLosObiZdvnCiLg5/71iniNZqQKBgQC9QIFA3324fAXnmqPYawsFKgnf9ocAD6H2l7HL4EVC2c0uzA6ktPigPP2q51dSBLhbrqnTGAn6PkKvgBBHRg2OnoKM/2FPYCqvvDGYc2qiOrV68z7nnfdF2KGCPPyeA8DJgcSRXnoatzYzpxNzj3r/1uBql7AMHmdjHTZjpXmwGQKBgDJZjh4TofdulpU3PWOQfLLQUOtCePkjhQtQI06Buz25Ouk+DIMgRxwGnA44YX9kogAas78c32FdjT6Uyp";

/// <summary>
        /// 代加签文本
        /// </summary>
        static string body = @"<body>hello</body>";
        #endregion
        /// <summary>
        /// MD5字符串加密
        /// </summary>
        /// <param name="txt"></param>
        /// <returns>加密后字符串</returns>
        public static string GenerateMD5(string txt)
        {
            using (MD5 mi = MD5.Create())
            {
                byte[] buffer = Encoding.Default.GetBytes(txt);
                //开始加密
                byte[] newBuffer = mi.ComputeHash(buffer);
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < newBuffer.Length; i++)
                {
                    sb.Append(newBuffer[i].ToString("x2"));
                }
                return sb.ToString();
            }
        }
    }

}

c# sha256withrsa 算法 rsa公钥私钥 源码相关推荐

  1. rsa公钥私钥生成工具

    rsa公钥私钥生成工具-java代码如下: /*** * @Description: RSA工具类,支持长度为2048的秘钥*/ @Slf4j public class RSAUtils {/*** ...

  2. C# RSA 公钥私钥生成方法

    生成C# RSA公钥私钥,上码: public sealed class RSAFromPkcs8{ /// <summary>/// 生成公钥与私钥方法/// </summary& ...

  3. 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码

    较高人工智能的人机博弈程序实现(多个算法结合)含C++源码 本文由恋花蝶最初发表于http://blog.csdn.net/lanphaday 上,您可以转载.引用.打印和分发等,但必须保留本文完整和 ...

  4. JavaScript实现唯一路径问题的动态编程方法的算法(附完整源码)

    JavaScript实现唯一路径问题的动态编程方法的算法(附完整源码) dpUniquePaths.js完整源代码 dpUniquePaths.test.js完整源代码 dpUniquePaths.j ...

  5. JavaScript实现唯一路径问题的回溯方法的算法(附完整源码)

    JavaScript实现唯一路径问题的回溯方法的算法(附完整源码) btUniquePaths.js完整源代码 btUniquePaths.test.js完整源代码 btUniquePaths.js完 ...

  6. JavaScript实现squareMatrixRotation方阵旋转算法(附完整源码)

    JavaScript实现squareMatrixRotation方阵旋转算法(附完整源码) squareMatrixRotation.js完整源代码 squareMatrixRotation.test ...

  7. JavaScript实现递归楼梯问题(带记忆的递归解决方案)算法(附完整源码)

    JavaScript实现递归楼梯问题(带记忆的递归解决方案)算法(附完整源码) recursiveStaircaseMEM.js完整源代码 recursiveStaircaseMEM.test.js完 ...

  8. JavaScript实现递归楼梯问题(迭代解决方案)算法(附完整源码)

    JavaScript实现递归楼梯问题(迭代解决方案)算法(附完整源码) recursiveStaircaseIT.js完整源代码 recursiveStaircaseIT.test.js完整源代码 r ...

  9. JavaScript实现递归楼梯问题(动态规划解决方案)算法(附完整源码)

    JavaScript实现递归楼梯问题(动态规划解决方案)算法(附完整源码) recursiveStaircaseDP.js完整源代码 recursiveStaircaseDP.test.js完整源代码 ...

最新文章

  1. android 叉叉助手 弹幕原理
  2. LAMP编译安装(一)——安装Apache2.4
  3. 把开机时Ctrl+Alt+Delete取消掉了
  4. 深入理解分布式技术 - 缓存过期策略手写LRU
  5. 构建仪表、图表控件的绘制框架
  6. scrapy python3.8_银狐DevNet-网络运维Python初篇(四)netmiko抓取华为网络配置并存入本地...
  7. 科大星云诗社动态20210904
  8. 桌面计算机密码应由哪项组成,计算机应用能力考试模拟试题
  9. c#汉字拼音转换拼音
  10. Datalore:用于机器学习可视化的新Web方案!
  11. web developer tips (1):创建、管理、应用样式表的强大工具
  12. ajax,jsonp,axios面试题
  13. 原来国家的名字可以如此的浪漫~~!
  14. Tomcat的startup.bat启动闪退解决办法
  15. LeetCode刷题(13)
  16. 统计学习基础(第二版)——引言
  17. dex2jar官网和jdgui官网链接
  18. Python之计算机算法基础总结(借鉴、整理)、排序算法、查找算法
  19. 机器视觉工程师之关于程序员的头发
  20. mtk6737m的lk中lcm流程

热门文章

  1. Julia-第一章简介和资源汇总
  2. .bat文件注册.ocx+win8开机获得管理员权限+运行程序自动注册.ocx
  3. 关于Office365邮箱附件大小限制问题
  4. python数据分析与应用-Python数据分析与应用-课后习题答案
  5. JavaScript实现微信聊天烟花效果
  6. android 开源 高斯模糊_Android高斯模糊、高斯平滑(Gaussian Blur)【1】
  7. 计算机论文封皮,毕业论文封面及格式规定
  8. 性能测试案例模板 性能测试用例模板
  9. Windows 下使用anaconda虚拟环境pip install 安装pytorch出现报错There was a problem confirming the ssl certificate
  10. Data URL和图片(前端细节优化)