1.用RSACryptoServiceProvider签名验签, 私钥加密,公钥验证

RSACryptoServiceProvider

 1   //生成公钥私钥对 2   byte[] messagebytes = Encoding.UTF8.GetBytes("luo罗");   3   RSACryptoServiceProvider oRSA = new RSACryptoServiceProvider();   4   string privatekey = oRSA.ToXmlString(true);   5   string publickey = oRSA.ToXmlString(false);   6      7   //私钥签名   8   RSACryptoServiceProvider oRSA3 = new RSACryptoServiceProvider();   9   oRSA3.FromXmlString(privatekey);  10   byte[] AOutput = oRSA3.SignData(messagebytes, "SHA1");  11   //公钥验证  12   RSACryptoServiceProvider oRSA4 = new RSACryptoServiceProvider();  13   oRSA4.FromXmlString(publickey);  14   bool bVerify = oRSA4.VerifyData(messagebytes, "SHA1", AOutput);  

  

2.RSA 公钥加密, 私钥解密

RSA非对称加密

 1 using System; 2 using System.Security.Cryptography; 3 /// <summary>  4 /// 生成公钥,私钥对 5 /// </summary>  6 public static string[] GenerateKeys() 7 { 8     string[] sKeys = new String[2]; 9     RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();10     sKeys[0] = rsa.ToXmlString(true);//私钥11     sKeys[1] = rsa.ToXmlString(false);//公钥12     return sKeys;13 }14 15 /// <summary> 16 /// RSA 加密17 /// </summary> 18 /// <param name="sSource" >明文</param> 19 /// <param name="sPublicKey" >公钥</param> 20 public static string EncryptString(string sSource, string sPublicKey)21 {22     RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();23     string plaintext = sSource;24     rsa.FromXmlString(sPublicKey);25     byte[] cipherbytes;26     byte[] byteEn = rsa.Encrypt(Encoding.UTF8.GetBytes("a"), false);27     cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(plaintext), false);28 29     StringBuilder sbString = new StringBuilder();30     for (int i = 0; i < cipherbytes.Length; i++)31     {32         sbString.Append(cipherbytes[i] + ",");33     }34     return sbString.ToString();35 }36 37 38 /// <summary> 39 /// RSA 解密40 /// </summary> 41 /// <param name="sSource">密文</param> 42 /// <param name="sPrivateKey">私钥</param> 43 public static string DecryptString(String sSource, string sPrivateKey)44 {45     RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();46     rsa.FromXmlString(sPrivateKey);47     byte[] byteEn = rsa.Encrypt(Encoding.UTF8.GetBytes("a"), false);48     string[] sBytes = sSource.Split(',');49 50     for (int j = 0; j < sBytes.Length; j++)51     {52         if (sBytes[j] != "")53         {54             byteEn[j] = Byte.Parse(sBytes[j]);55         }56     }57     byte[] plaintbytes = rsa.Decrypt(byteEn, false);58     return Encoding.UTF8.GetString(plaintbytes);59 }

  

3.RSA 改进版, 私钥加密, 公钥解密

代码参考这里, 代码较多就不贴出来了:

http://www.cnblogs.com/hhh/archive/2011/06/03/2070692.html

相关链接:
[1]RSA私钥加密公钥解密算法。

http://blog.csdn.net/zhilunchen/archive/2008/09/17/2943158.aspx

[2]BigInteger大整数运算类。

http://www.codeproject.com/KB/cs/biginteger.aspx
4.DES 加密
DES加密

/// <summary>///  DES算法描述简介:///  DES是Data Encryption Standard(数据加密标准)的缩写。它是由IBM公司研制的一种加密算法,/// 美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准;/// 它是一个分组加密算法,他以64位为分组对数据加密。/// 同时DES也是一个对称算法:加密和解密用的是同一个算法。/// 它的密匙长度是56位(因为每个第8 位都用作奇偶校验),/// 密匙可以是任意的56位的数,而且可以任意时候改变./// </summary>private static byte[] IV = { 0x14, 0xFC, 0x29, 0xC8, 0x9A, 0xCB, 0xCA, 0xE7 };//加密IV向量public static String Encrypt(String Key, String str){byte[] bKey = Encoding.UTF8.GetBytes(Key.Substring(0, 8));byte[] bIV = IV;byte[] bStr = Encoding.UTF8.GetBytes(str);try    {        DESCryptoServiceProvider desc = new DESCryptoServiceProvider();        MemoryStream mStream = new MemoryStream();        CryptoStream cStream = new CryptoStream(mStream, desc.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write);        cStream.Write(bStr, 0, bStr.Length);        cStream.FlushFinalBlock();return Convert.ToBase64String(mStream.ToArray());    }catch    {return string.Empty;    }}

public static String Decrypt(String Key, String DecryptStr){try    {byte[] bKey = Encoding.UTF8.GetBytes(Key.Substring(0, 8));byte[] bIV = IV;byte[] bStr = Convert.FromBase64String(DecryptStr);        DESCryptoServiceProvider desc = new DESCryptoServiceProvider();        MemoryStream mStream = new MemoryStream();        CryptoStream cStream = new CryptoStream(mStream, desc.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write);        cStream.Write(bStr, 0, bStr.Length);        cStream.FlushFinalBlock();return Encoding.UTF8.GetString(mStream.ToArray());    }catch    {return string.Empty;    }}

  

5.常用SHA1, MD5

MD5, SHA1

 1 /// <summary> 2 /// MD5加密 3 /// </summary> 4 private static string GetMd5(string md5) 5 { 6     System.Security.Cryptography.MD5CryptoServiceProvider md = new System.Security.Cryptography.MD5CryptoServiceProvider(); 7     byte[] value, hash; 8     value = System.Text.Encoding.UTF8.GetBytes(md5); 9     hash = md.ComputeHash(value);10     md.Clear();11     string temp = "";12     for (int i = 0, len = hash.Length; i < len; i++)13     {14         temp += hash[i].ToString("X").PadLeft(2, '0');15     }16     return temp;17 }18 19 /// <summary>20 /// SHA1加密21 /// </summary>22 private static string Get_SHA1(string strSource)23 {24     System.Security.Cryptography.SHA1 sha = new System.Security.Cryptography.SHA1CryptoServiceProvider();25     byte[] bytResult = sha.ComputeHash(System.Text.Encoding.Default.GetBytes(strSource));26     //转换成字符串,32位  27     string strResult = BitConverter.ToString(bytResult);28     //BitConverter转换出来的字符串会在每个字符中间产生一个分隔符,需要去除掉  29     strResult = strResult.Replace("-", "");30     return strResult;31 }

  

转载于:https://www.cnblogs.com/hanf/archive/2011/08/13/2137590.html

C# 常用加密方法收集 对称,非对称相关推荐

  1. 计算机常用的加密方法,摩斯密码以及十种常用加密方法.pdf

    . 摩斯密码以及十种常用加密方法 --阿尔萨斯大官人整理,来源互联网 摩斯密码的历史我就不再讲了,各位可以自行百度,下面从最简单的开始: 时间控制和表示方法 有两种 "符号 "用来 ...

  2. IOS开发之----常用加密方法

    本文转载至 http://blog.csdn.net/wildfireli/article/details/23191983 (AES.MD5.Base64) 分类: iPhone 2014-04-0 ...

  3. mysql常用加密方法_MYSQL 加密的 3 类方法

    背景: 若你想要储存一些由可能包含任意字节值的加密函数返回的结果,使用BLOB列而不是 CHAR 或VARCHAR 列,从而避免由于结尾空格的删除而改变一些数据值的潜在问题. 这一句话来自官方文件,记 ...

  4. 接口对接常用加密方法

    和第三方对接加密,通常需要进行字段加密,再进行传输. 1.XML排序后加密 项目实践中,和百年保险对接使用到了这种加密 import xmltodict import hashlibfrom lxml ...

  5. Java中常用的加密方法(JDK)

    加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些 ...

  6. 计算机常用的加密方法,加密方式有哪些_教你常用加密方式有哪些

    随着科技的进步,数据加密已经越来越重要了,在诸多领域都需要数据加密,保证安全.那么加密方式有哪些呢?别着急,小编这就教你常用加密方式有哪些.希望能够对你有所帮助. 加密方式有哪些: 1.MD5,一种被 ...

  7. 【安全加密技术】 对称加密

    转载请注明出处:http://blog.csdn.net/sk719887916/article/details/46822663 上篇了解了<非对称加密>后 今天我来继续了解下加密技术中 ...

  8. WORD文档的实用加密方法

    一.授权加密法 授权法是美国微软公司开发的OFFICE组件中的文字处理软件WORD中自带的一种常用加密方法.主要是通过授权以设置密码形式来进行加密. 具体操作如下:在编辑状态下,先点击工具下拉式菜单, ...

  9. 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别

    目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...

最新文章

  1. Spark Streaming实践和优化
  2. WINRAR 命令行语法
  3. Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务
  4. java跳转画面后画面白了_如何跳转指定页面后再次跳转到另一页面或原来的页面...
  5. 怎样在数据绑定到DATAGRID之前,先判断其中一个字段是否为空?
  6. Android 系统(227)---沉浸式状态栏工具类
  7. 深入解析C++ STL中的常用容器
  8. 微软Windows7对Vista的几点改进
  9. 6.1离散时间马尔科夫链
  10. 矩阵分析及应用(1-2章)
  11. C# 调用Webservice实例
  12. 四巨头键盘钢琴音源完整版-Spectrasonics Keyscape v1.1.3C WiN-MAC
  13. 设置Iframe透明
  14. ThunderSoft Apple Music Converter Mac(drm限制解除工具)
  15. 黑莓手机无法上网解决方案
  16. css 友情链接效果,常用友情链接代码(带样式)
  17. 实现数据开放共享的方法
  18. Ubuntu16.04安装vscode,并修改为简体中文版,设置显示空格和tab,汉字或者汉字的标点带黄色框
  19. html链接ppt,PPT超链接的各种使用方法
  20. Javapython实现网页内容自动识别与提取技术实现

热门文章

  1. iOS-组件化 —— 路由设计思路分析
  2. java qq登录_JAVA实现QQ第三方登录
  3. 强化学习之马尔可夫决策过程—机器学习公开课第十五讲
  4. np.savetxt()——将array保存到txt文件,并保持原格式
  5. 吉林大学计算机科学与技术学院院长,黄岚-吉林大学计算机科学与技术学院
  6. 单片机智能遥控小车实战
  7. 02-JVM垃圾回收
  8. 【MySQL必知必会(十三)】【创建高级联结】
  9. java单机西瓜大作战,大西瓜大作战
  10. oracle12c 隐藏列的值