C#常用加密方法
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text; /// <summary>
/// Encrypt 的摘要说明
/// </summary>
public static class Encrypt
{
#region 解密由AES加密的字符串
/// <summary>
/// 解密由AES加密的字符串
/// </summary>
/// <param name="source">加密字符串</param>
/// <param name="key">加密密钥</param>
/// <returns>解密后的字符串</returns>
public static string Dencrypt_AES(string source, string key)
{
try
{
Rijndael rijndael = Rijndael.Create();
rijndael.Key = Encoding.Default.GetBytes(key);
rijndael.IV = Encoding.Default.GetBytes(key.Substring(0, 0x10));
byte[] buffer = Convert.FromBase64String(source);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, rijndael.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
return Encoding.Default.GetString(stream.ToArray());
}
catch
{
return null;
}
}
#endregion #region 解密由DES加密的字符串
/// <summary>
/// 解密由DES加密的字符串
/// </summary>
/// <param name="source">加密的字符串</param>
/// <param name="key">加密的密钥</param>
/// <returns>解密后的字符串</returns>
public static string Dencrypt_DES(string source, string key)
{
try
{
DESCryptoServiceProvider provider2 = new DESCryptoServiceProvider
{
Key = Encoding.Default.GetBytes(key),
IV = Encoding.Default.GetBytes(key)
};
DESCryptoServiceProvider provider = provider2;
byte[] buffer = Convert.FromBase64String(source);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
return Encoding.Default.GetString(stream.ToArray());
}
catch
{
return null;
}
}
#endregion #region 解密由RC2加密的字符串
/// <summary>
/// 解密由RC2加密的字符串
/// </summary>
/// <param name="source">加密的字符串</param>
/// <param name="key">加密的密钥</param>
/// <returns>解密后的字符串</returns>
public static string DEncrypt_RC2(string source, string key)
{
try
{
RC2CryptoServiceProvider provider2 = new RC2CryptoServiceProvider
{
Key = Encoding.Default.GetBytes(key),
IV = Encoding.Default.GetBytes(key)
};
RC2CryptoServiceProvider provider = provider2;
byte[] buffer = Convert.FromBase64String(source);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
return Encoding.Default.GetString(stream.ToArray());
}
catch
{
return null;
}
}
#endregion #region 解密由TripleDES加密的字符串
/// <summary>
/// 解密由TripleDES加密的字符串
/// </summary>
/// <param name="source">加密的字符串</param>
/// <param name="key">加密的密钥</param>
/// <returns>解密后的字符串</returns>
public static string Dencrypt_TripleDES(string source, string key)
{
try
{
TripleDESCryptoServiceProvider provider2 = new TripleDESCryptoServiceProvider
{
Key = Encoding.Default.GetBytes(key),
IV = Encoding.Default.GetBytes(key.Substring(0, 8))
};
TripleDESCryptoServiceProvider provider = provider2;
byte[] buffer = Convert.FromBase64String(source);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
return Encoding.Default.GetString(stream.ToArray());
}
catch
{
return null;
}
}
#endregion #region 使用AES方式进行加密
/// <summary>
/// 使用AES方式进行加密
/// </summary>
/// <param name="source">需要加密的字符串</param>
/// <param name="key">加密用的密钥</param>
/// <returns>加密后的字符串</returns>
public static string Encrypt_AES(string source, string key)
{
try
{
Rijndael rijndael = Rijndael.Create();
rijndael.Key = Encoding.Default.GetBytes(key);
rijndael.IV = Encoding.Default.GetBytes(key.Substring(0, 0x10));
byte[] bytes = Encoding.Default.GetBytes(source);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, rijndael.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(bytes, 0, bytes.Length);
stream2.FlushFinalBlock();
return Convert.ToBase64String(stream.ToArray());
}
catch
{
return null;
}
}
#endregion #region 使用DES方式进行加密
/// <summary>
/// 使用DES方式进行加密
/// </summary>
/// <param name="source">需要加密的字符串</param>
/// <param name="key">加密用的密钥</param>
/// <returns>加密后的字符串</returns>
public static string Encrypt_DES(string source, string key)
{
try
{
DESCryptoServiceProvider provider2 = new DESCryptoServiceProvider
{
Key = Encoding.Default.GetBytes(key),
IV = Encoding.Default.GetBytes(key)
};
DESCryptoServiceProvider provider = provider2;
byte[] bytes = Encoding.Default.GetBytes(source);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(bytes, 0, bytes.Length);
stream2.FlushFinalBlock();
return Convert.ToBase64String(stream.ToArray());
}
catch
{
return null;
}
}
#endregion #region 使用MD5方式进行加密
/// <summary>
/// 使用MD5方式进行加密
/// </summary>
/// <param name="source">需要加密的字符串</param>
/// <param name="key">加密用的密钥</param>
/// <returns>加密后的字符串</returns>
public static string Encrypt_MD5(string source)
{
string str = "";
MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
byte[] bytes = Encoding.Default.GetBytes(source);
byte[] buffer2 = provider.ComputeHash(bytes);
foreach (byte num in buffer2)
{
str = str + num.ToString("X").PadLeft(2, '0');
}
return str;
}
#endregion #region 使用RC2方式进行加密
/// <summary>
/// 使用RC2方式进行加密
/// </summary>
/// <param name="source">需要加密的字符串</param>
/// <param name="key">加密用的密钥</param>
/// <returns>加密后的字符串</returns>
public static string Encrypt_RC2(string source, string key)
{
try
{
RC2CryptoServiceProvider provider2 = new RC2CryptoServiceProvider
{
Key = Encoding.Default.GetBytes(key),
IV = Encoding.Default.GetBytes(key)
};
RC2CryptoServiceProvider provider = provider2;
byte[] bytes = Encoding.Default.GetBytes(source);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(bytes, 0, bytes.Length);
stream2.FlushFinalBlock();
return Convert.ToBase64String(stream.ToArray());
}
catch
{
return null;
}
}
#endregion #region 使用TripleDES方式进行加密
/// <summary>
/// 使用TripleDES方式进行加密
/// </summary>
/// <param name="source">需要加密的字符串</param>
/// <param name="key">加密用的密钥</param>
/// <returns>加密后的字符串</returns>
public static string Encrypt_TripleDES(string source, string key)
{
try
{
TripleDESCryptoServiceProvider provider2 = new TripleDESCryptoServiceProvider
{
Key = Encoding.Default.GetBytes(key),
IV = Encoding.Default.GetBytes(key.Substring(0, 8))
};
TripleDESCryptoServiceProvider provider = provider2;
byte[] bytes = Encoding.Default.GetBytes(source);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(bytes, 0, bytes.Length);
stream2.FlushFinalBlock();
return Convert.ToBase64String(stream.ToArray());
}
catch
{
return null;
}
}
#endregion #region 获取加密的密钥
/// <summary>
/// 获取加密的密钥
/// </summary>
/// <param name="EncryptType">加密方式</param>
/// <returns>密钥</returns>
public static string GetKey(EncryptType encryptType)
{
switch (encryptType)
{
case EncryptType.AES:
return "1zx2fqw3eas4dtg8hui9opl6dfh5aok0"; case EncryptType.DES:
return "zxc52mxb"; case EncryptType.TDES:
return "zxc52mxbqwdftghu24dfhji0"; case EncryptType.RC2:
return "qwedfgbd";
}
return "";
}
#endregion public enum EncryptType:byte
{
AES,
DES,
TDES,
RC2
}
}
C#常用加密方法的更多相关文章
- iOS常用加密方法(aes、md5、base64)
1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...
- IOS开发之----常用加密方法
本文转载至 http://blog.csdn.net/wildfireli/article/details/23191983 (AES.MD5.Base64) 分类: iPhone 2014-04-0 ...
- Java中常用的加密方法(JDK)
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些 ...
- ASP.NET常用加密解密方法
ASP.NET常用加密解密方法 一.MD5加密解密 1.加密 C# 代码 public static string ToMd5(string clearString) ...
- [转载] Java中常用的加密方法
转载自http://www.iteye.com/topic/1122076/ 加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的 ...
- IOS常见的加密方法,常用的MD5和Base64
iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...
- 2019-2-20C#开发中常用加密解密方法解析
C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...
- iOS里常见的几种信息编码、加密方法简单总结
一.MD5 MD5编码是最常用的编码方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码. MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对的 ...
- iOS代码加密常用加密方式
iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...
随机推荐
- update使用inner join
一.update 基础语法 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 上面是我们常见的更新表的方式,其实我们还可以去另外一张表的数据来更新当前的表数据,如现在就有这 ...
- Javascript 面向对象的编程思想
面向对象,首先得有类的概念,没有类造不出来对象,,Javascript把函数名看成类. 其次分为不同结构层,如三层架构.MVC.MVVM. 本文根据实际项目演练,分为几个适用的结构层,如果项目不大一般 ...
- python接口自动化测试(八)-unittest-生成测试报告
用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...
- 每天一个linux命令(13):less命令
1.命令简介 less(less) 命令可以对文件或其它输出进行分页显示,与moe命令相似,但是比more命令要强大许多.应该说是linux正统查看文件内容的工具. 2.用法 less [选项].. ...
- mybatis 中一对多、多对一、多对多、父子继承关系
mybatis 中处理一对多.多对一.多对多.父子继承关系的有关键词:association .collection .discriminator id – 一个 ID 结果:标记出作为 ID 的结果 ...
- CentOS5.5上安装Python2.7及ez_setup和pip包
CentOS5.5上安装Python2.7及ez_setup和pip包 下载 首先从Python官方下载源代码包下载 编译安装 这里将python安装到/opt/python27文件夹下 tar xv ...
- 初识go的tomb包
在分析github.com/hpcloud/tail 这个包的源码的时候,发现这个包里用于了一个另外一个包,自己也没有用过,但是这个包在tail这个包里又起来非常大的作用 当时并没有完全弄明白这个包的 ...
- VS2015 怎么安装RDLC报表模板?
这几天刚好用到微软自带的RDLC报表,但是在VS2015张找了一圈也没找,难道是我VS版本 不支持,在网上查了下,有的人说VS2015社区版,企业版不支持,只有专业版支持,各说不一,想想不科学呀,微软 ...
- 基于expressjs老项目的翻新方案
刚开始接触这方面的项目时,对ES规范理解不深,查了一些资料,发现如果不改expressjs的代码,大概率是没法用到最新的async/await了,后续也就没有继续往这个方面想. 这两天突然想起这个问题 ...
- php curl post josn + header
<meta charset="utf8"> <?php ini_set("max_execution_time",1800000); $arr ...