using System;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace MyCryptography
{
/// <summary>
/// DES加密解密
/// </summary>
public class DES
{
/// <summary>
/// 获取密钥
/// </summary>
private static string Key
{
get { return @"P@+#wG+Z"; }
}
/// <summary>
/// 获取向量
/// </summary>
private static string IV
{
get { return @"L%n67}G/Mk@k%:~Y"; }
}
/// <summary>
/// DES加密
/// </summary>
/// <param name="plainStr">明文字符串</param>
/// <returns>密文</returns>
public static string DESEncrypt(string plainStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
string encrypt = null;
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
encrypt = Convert.ToBase64String(mStream.ToArray());
}
}
}
catch { }
des.Clear();
return encrypt;
}
/// <summary>
/// DES解密
/// </summary>
/// <param name="encryptStr">密文字符串</param>
/// <returns>明文</returns>
public static string DESDecrypt(string encryptStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Convert.FromBase64String(encryptStr);
string decrypt = null;
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
decrypt = Encoding.UTF8.GetString(mStream.ToArray());
}
}
}
catch { }
des.Clear();
return decrypt;
}
}
/// <summary>
/// AES加密解密
/// </summary>
public class AES
{
/// <summary>
/// 获取密钥
/// </summary>
private static string Key
{
get { return @")O[NB]6,YF}+efcaj{+oESb9d8>Z'e9M"; }
}
/// <summary>
/// 获取向量
/// </summary>
private static string IV
{
get { return @"L+/~f4,Ir)b$=pkf"; }
}
/// <summary>
/// AES加密
/// </summary>
/// <param name="plainStr">明文字符串</param>
/// <returns>密文</returns>
public static string AESEncrypt(string plainStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
string encrypt = null;
Rijndael aes = Rijndael.Create();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
encrypt = Convert.ToBase64String(mStream.ToArray());
}
}
}
catch { }
aes.Clear();
return encrypt;
}
/// <summary>
/// AES加密
/// </summary>
/// <param name="plainStr">明文字符串</param>
/// <param name="returnNull">加密失败时是否返回 null,false 返回 String.Empty</param>
/// <returns>密文</returns>
public static string AESEncrypt(string plainStr, bool returnNull)
{
string encrypt = AESEncrypt(plainStr);
return returnNull ? encrypt : (encrypt == null ? String.Empty : encrypt);
}
/// <summary>
/// AES解密
/// </summary>
/// <param name="encryptStr">密文字符串</param>
/// <returns>明文</returns>
public static string AESDecrypt(string encryptStr)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Convert.FromBase64String(encryptStr);
string decrypt = null;
Rijndael aes = Rijndael.Create();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
decrypt = Encoding.UTF8.GetString(mStream.ToArray());
}
}
}
catch { }
aes.Clear();
return decrypt;
}
/// <summary>
/// AES解密
/// </summary>
/// <param name="encryptStr">密文字符串</param>
/// <param name="returnNull">解密失败时是否返回 null,false 返回 String.Empty</param>
/// <returns>明文</returns>
public static string AESDecrypt(string encryptStr, bool returnNull)
{
string decrypt = AESDecrypt(encryptStr);
return returnNull ? decrypt : (decrypt == null ? String.Empty : decrypt);
}
}
}
|
相关推荐
C#编写的DES、AES、3DES、IDEA加密解密算法实现,内有完整源代码
c#编写关于AES与DES加密算法,给出了加密解密的函数,直接复制就可以利用
C# 实现DES 3DES AES SM4加解密源码,以及PBOC标准算法源码,以及对应的测试源码;可以做为动态库直接使用。
C#AES加解密,DES加解密,MD5加密方法类。
说到加密,可能大家最熟悉的就是MD5了,一般保存密码、查看文档是否更新都是用到MD5加密,MD5加密是不可逆的,不能解密出明文。...C#里的MD5、DES、AES、RSA加密解密详细方法已封装,大家安心下载使用。
主要介绍了C#使用DES和AES实现加密解密功能,结合具体实例形式分析了C#实现DES与AES的加密解密功能实现技巧,需要的朋友可以参考下
vs2005下稳定测试通过,支持...倾情推荐,满足一般的加密需要应该没问题,除非碰到变态狂拿到超级计算机中去爆破,否则累死他也活该,但一般的小作坊没这个实力和代价吧。 感谢分享的网友和翻译的网友,向你们表示敬意!
Delphi7与C#实现Des加解密互通Demo,全网找遍只次一份
3种加密数据及对应解密方法,简单易懂,一次下载3种方法只要2积分,物超所值.赶快下载吧
加密 解密 c# 源码。。。。。。。。。。。。。。。。。。。
采用c#开发,计算机安全的实验 友好的界面,简单实用
当进行网络传输的时候,数据的安全问题不可少,那加密成了一个必要手段,目前,最流行的加密方法无非是AES、DES、3DES外加MD5校验;开发人员经常不可避免的会出现跨语言之间的加解密换算,经常会因此而出现这样那样...
在C#中,实现非对称加密和对称加密的样例程序。包含MD5,SHA1,SHA256,SHA512等非对称算法和DES,AES和RSA,ECC等算法的样例,供学习。
易语言实现RSA,ECC,DES,AES,DSA算法
DES+AES+IDEA+3DES加密解密程序及完整源代码
本demo用C# 实现了了AES、RSA、DES、RC4、ECC加密解密方法,同时分析了几个加密解密的性能 其中用来加密的源字符串为随机生成的10字节 1KB,10KB 100KB的字符串
DES,MD5(32位和16位),AES,SHA1,RSA的加密及能解密类,自用DLL,分享给大家。
js加密算法经常会使用到,不然就得下后端进行加密调用。
* 数据加密标准(DES)的C#实现(1) * * 采用随机的密钥Key和初始化向量IV加密 * * 运行环境:.net2.0 framework */ /* * 关于DES加密中的初始化向量IV: * 对于给定的密钥 k,不使用初始化向量的简单块...