1. using System;
  2. using System.IO;
  3. using System.Security.Cryptography;
  4. using System.Text;
  5.  
  6. namespace ClassLibrary1
  7. {
  8. class Code
  9. {
  10. //1、base64 to string
  11. public static string Base64Encrypt(string strPath)
  12. {
  13. byte[] bpath = Convert.FromBase64String(strPath);
  14. string returnData = Encoding.Default.GetString(bpath);
  15. return returnData;
  16. }
  17.  
  18. //2、string to base64
  19. public static string Base64DesEncrypt(string strPath)
  20. {
  21. Encoding encode = Encoding.ASCII;
  22. byte[] bytedata = encode.GetBytes(strPath);
  23. string returnData = Convert.ToBase64String(bytedata, , bytedata.Length);
  24. return returnData;
  25. }
  26.  
  27. /// <summary>
  28. /// 对字符串进MD5加密
  29. /// </summary>
  30. /// <param name="sourceStr">源类型</param>
  31. /// <returns>加密后字符串</returns>
  32. public static string Md5Encrypt(string sourceStr)
  33. {
  34. MD5 md5 = new MD5CryptoServiceProvider();
  35. //将要加密的字符串转换成字节数组
  36. byte[] palindata = Encoding.Default.GetBytes(sourceStr);
  37. //通过字节数组进行加密
  38. byte[] encryptdata = md5.ComputeHash(palindata);
  39. //将加密后的字节数组转换成字符串
  40. string returnData = Convert.ToBase64String(encryptdata);
  41. return returnData;
  42. }
  43.  
  44. /// <summary>
  45. /// Md5加密
  46. /// </summary>
  47. /// <param name="pToEncrypt">要加密的string</param>
  48. /// <param name="sKey">要加密的key</param>
  49. /// <returns></returns>
  50. public static string Md5Encrypt(string pToEncrypt, string sKey)
  51. {
  52. DESCryptoServiceProvider des = new DESCryptoServiceProvider();
  53. byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
  54. des.Key = Encoding.ASCII.GetBytes(sKey);
  55. des.IV = Encoding.ASCII.GetBytes(sKey);
  56. MemoryStream ms = new MemoryStream();
  57. CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
  58. cs.Write(inputByteArray, , inputByteArray.Length);
  59. cs.FlushFinalBlock();
  60. StringBuilder ret = new StringBuilder();
  61. foreach (byte b in ms.ToArray())
  62. {
  63. ret.AppendFormat("{0:X2}", b);
  64. }
  65. var s = ret.ToString();
  66. return s;
  67. }
  68.  
  69. /// <summary>
  70. /// Md5解密
  71. /// </summary>
  72. /// <param name="pToDecrypt">解密string</param>
  73. /// <param name="sKey">解密key(要8位数)</param>
  74. /// <returns></returns>
  75. public static string Md5Decrypt(string pToDecrypt, string sKey)
  76. {
  77. DESCryptoServiceProvider des = new DESCryptoServiceProvider();
  78. byte[] inputByteArray = new byte[pToDecrypt.Length / ];
  79. for (int x = ; x < pToDecrypt.Length / ; x++)
  80. {
  81. int i = (Convert.ToInt32(pToDecrypt.Substring(x * , ), ));
  82. inputByteArray[x] = (byte) i;
  83. }
  84. des.Key = Encoding.ASCII.GetBytes(sKey);
  85. des.IV = Encoding.ASCII.GetBytes(sKey);
  86. MemoryStream ms = new MemoryStream();
  87. CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
  88. cs.Write(inputByteArray, , inputByteArray.Length);
  89. cs.FlushFinalBlock();
  90.  
  91. return Encoding.Default.GetString(ms.ToArray());
  92. }
  93.  
  94. public static CspParameters Param;
  95. /// <summary>
  96. /// 进行 RSA 加密
  97. /// </summary>
  98. /// <param name="sourceStr">源字符串</param>
  99. /// <returns>加密后字符串</returns>
  100. public static string RsaEncrypt(string sourceStr)
  101. {
  102. Param = new CspParameters();
  103. //密匙容器的名称,保持加密解密一致才能解密成功
  104. Param.KeyContainerName = "Navis";
  105. using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(Param))
  106. {
  107. //将要加密的字符串转换成字节数组
  108. byte[] plaindata = Encoding.Default.GetBytes(sourceStr);
  109. //通过字节数组进行加密
  110. byte[] encryptdata = rsa.Encrypt(plaindata, false);
  111. //将加密后的字节数组转换成字符串
  112. return Convert.ToBase64String(encryptdata);
  113. }
  114. }
  115.  
  116. /// <summary>
  117. /// 通过RSA 加密方式进行解密
  118. /// </summary>
  119. /// <param name="codingStr">加密字符串</param>
  120. /// <returns>解密后字符串</returns>
  121. public static string RsaDesEncrypt(string codingStr)
  122. {
  123. Param = new CspParameters();
  124. Param.KeyContainerName = "Navis";
  125. using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(Param))
  126. {
  127. byte[] encryptdata = Convert.FromBase64String(codingStr);
  128. byte[] decryptdata = rsa.Decrypt(encryptdata, false);
  129. return Encoding.Default.GetString(decryptdata);
  130. }
  131. }
  132. }
  133. }

C# Base64编码解码 ,Md5、Rsa加密解密的更多相关文章

  1. qt md5加密,base64编码解码

    qt md5加密,base64编码解码 md5加密 QByteArray data = "12121221"; data += "asdfas"; QByteA ...

  2. 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  3. python rsa 加密解密 (编解码,base64编解码)

    最近有需求,需要研究一下RSA加密解密安全:在网上百度了一下例子文章,很少有文章介绍怎么保存.传输.打印加密后的文本信息,都是千篇一律的.直接在一个脚本,加密后的文本信息赋于变量,然后立马调用解密.仔 ...

  4. Java使用RSA加密解密及签名校验

    该工具类中用到了BASE64,需要借助第三方类库:javabase64-1.3.1.jar注意:RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行 ...

  5. C# Java间进行RSA加密解密交互

    原文:C# Java间进行RSA加密解密交互 这里,讲一下RSA算法加解密在C#和Java之间交互的问题,这两天纠结了很久,也看了很多其他人写的文章,颇受裨益,但没能解决我的实际问题,终于,还是被我捣 ...

  6. C# Java间进行RSA加密解密交互(二)

    原文:C# Java间进行RSA加密解密交互(二) 接着前面一篇文章C# Java间进行RSA加密解密交互,继续探讨这个问题. 在前面,虽然已经实现了C# Java间进行RSA加密解密交互,但是还是与 ...

  7. C# Java间进行RSA加密解密交互(三)

    原文:C# Java间进行RSA加密解密交互(三) 接着前面一篇C# Java间进行RSA加密解密交互(二)说吧,在上篇中为了实现 /** * RSA加密 * @param text--待加密的明文 ...

  8. java RSA加密解密--转载

    原文地址:http://www.blogjava.net/icewee/archive/2012/05/19/378570.html 该工具类中用到了BASE64,需要借助第三方类库:javabase ...

  9. RSA加密解密及数字签名Java实现--转

    RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院 ...

  10. RSA加密解密及RSA加签验签

    RSA安全性应用场景说明 在刚接触RSA的时候,会混淆RSA加密解密和RSA加签验签的概念.简单来说加密解密是公钥加密私钥解密,持有公钥(多人持有)可以对数据加密,但是只有持有私钥(一人持有)才可以解 ...

随机推荐

  1. unittest单元测试框架总结(转)

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者 ...

  2. Flutter-TextField初始化值和選中取值

    import 'package:flutter/material.dart'; class PersonalCenterInformationScreen extends StatefulWidget ...

  3. CH5E26 扑克牌 (计数类DP)

    $ CH~5E26~\times ~ $ 扑克牌: (计数类DP) $ solution: $ 唉,计数类DP总是这么有套路,就是想不到. 这道题我们首先可以发现牌的花色没有价值,只需要知道每种牌有 ...

  4. Thread类与Runnable接口

    Runnable 先看看源码中对Runnable的声明 @FunctionalInterface public interface Runnable { /** * When an object im ...

  5. vue开发可复用组件

    组件,是一个具有一定功能,且不同组件间功能相对独立的模块.高内聚.低耦合.   开发可复用性的组件应遵循以下原则:   1.规范化命名:组件的命名应该跟业务无关,而是依据组件的功能命名. 2.数据扁平 ...

  6. centos 7 网卡绑定 bond0 开机无法自启

    https://blog.csdn.net/u012881151/article/details/54910847 1.环境CentOS Linux release 7.2.1511 (Core)li ...

  7. C#第一个程序Helloworld

  8. (转)Kubernetes 配置Pod和容器(十七) 使用Secrets管理安全证书

    转:https://www.jianshu.com/p/530b3642c642 本章节展示了如何把密码秘钥等敏感数据安全的注入到Pod里面. 转换安全数据成base-64表示 假设你有两个秘密数据: ...

  9. NOIP2011 洛谷P1315 观光公交

    题目传送门 先解释一下数组的意义: d[i]表示公交车从第i个点到第i+1个点需要的时间 pas结构体中:t表示这个乘客到公交站牌的时间,u表示起点,v表示终点 wait[i]表示公交车在第i个站点等 ...

  10. E:\Postgresql\pgAdmin4_binaryPath

    e Path to the directory containing the EDB Advanced Server utility programs (pg_dump, pg_restore etc ...