加密的操作类,包含判断是否加密
来源:互联网 发布:python的idey 编辑:程序博客网 时间:2024/04/30 06:35
自己参照网上的加密解密,添加了一个判断是否加密函数
EDS操作:
using System;using System.Security.Cryptography; using System.Text;namespace RuRo.Common.DEncrypt{/// <summary>/// DES加密/解密类。 /// Copyright (C) Maticsoft/// </summary>public class DESEncrypt{public DESEncrypt(){}#region ========加密======== /// <summary> /// 加密 /// </summary> /// <param name="Text"></param> /// <returns></returns>public static string Encrypt(string Text) { return Encrypt(Text, "RUROFREE");}/// <summary> /// 加密数据 /// </summary> /// <param name="Text"></param> /// <param name="sKey"></param> /// <returns></returns> public static string Encrypt(string Text,string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray; inputByteArray=Encoding.Default.GetBytes(Text); des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); System.IO.MemoryStream ms=new System.IO.MemoryStream(); CryptoStream cs=new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray,0,inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret=new StringBuilder(); foreach( byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}",b); } return ret.ToString(); } #endregion#region ========解密======== /// <summary> /// 解密 /// </summary> /// <param name="Text"></param> /// <returns></returns>public static string Decrypt(string Text) { return Decrypt(Text, "RUROFREE");}/// <summary> /// 解密数据 /// </summary> /// <param name="Text"></param> /// <param name="sKey"></param> /// <returns></returns> public static string Decrypt(string Text,string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); int len; len=Text.Length/2; byte[] inputByteArray = new byte[len]; int x,i; for(x=0;x<len;x++) { i = Convert.ToInt32(Text.Substring(x * 2, 2), 16); inputByteArray[x]=(byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); System.IO.MemoryStream ms=new System.IO.MemoryStream(); CryptoStream cs=new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray,0,inputByteArray.Length); cs.FlushFinalBlock(); return Encoding.Default.GetString(ms.ToArray()); } /// <summary> /// 判断字符串是否加密过 /// </summary> /// <param name="Text">要判断的字符</param> /// <param name="sKey">加密编码</param> /// <returns></returns> public static string IsDesDecrypt(string Text, string sKey) { try { string streds= Decrypt(Text,sKey); return streds; } catch { return "TMD"; } } #endregion }}
using System;using System.Security.Cryptography; using System.Text;namespace RuRo.Common.DEncrypt{public class DEncrypt{/// <summary>/// 构造方法/// </summary>public DEncrypt() { } #region 使用 缺省密钥字符串 加密/解密string/// <summary>/// 使用缺省密钥字符串加密string/// </summary>/// <param name="original">明文</param>/// <returns>密文</returns>public static string Encrypt(string original){return Encrypt(original,"MATICSOFT");}/// <summary>/// 使用缺省密钥字符串解密string/// </summary>/// <param name="original">密文</param>/// <returns>明文</returns>public static string Decrypt(string original){return Decrypt(original,"MATICSOFT",System.Text.Encoding.Default);}#endregion#region 使用 给定密钥字符串 加密/解密string/// <summary>/// 使用给定密钥字符串加密string/// </summary>/// <param name="original">原始文字</param>/// <param name="key">密钥</param>/// <param name="encoding">字符编码方案</param>/// <returns>密文</returns>public static string Encrypt(string original, string key) { byte[] buff = System.Text.Encoding.Default.GetBytes(original); byte[] kb = System.Text.Encoding.Default.GetBytes(key);return Convert.ToBase64String(Encrypt(buff,kb)); }/// <summary>/// 使用给定密钥字符串解密string/// </summary>/// <param name="original">密文</param>/// <param name="key">密钥</param>/// <returns>明文</returns>public static string Decrypt(string original, string key){return Decrypt(original,key,System.Text.Encoding.Default);}/// <summary>/// 使用给定密钥字符串解密string,返回指定编码方式明文/// </summary>/// <param name="encrypted">密文</param>/// <param name="key">密钥</param>/// <param name="encoding">字符编码方案</param>/// <returns>明文</returns>public static string Decrypt(string encrypted, string key,Encoding encoding) { byte[] buff = Convert.FromBase64String(encrypted); byte[] kb = System.Text.Encoding.Default.GetBytes(key);return encoding.GetString(Decrypt(buff,kb)); } #endregion#region 使用 缺省密钥字符串 加密/解密/byte[]/// <summary>/// 使用缺省密钥字符串解密byte[]/// </summary>/// <param name="encrypted">密文</param>/// <param name="key">密钥</param>/// <returns>明文</returns>public static byte[] Decrypt(byte[] encrypted) { byte[] key = System.Text.Encoding.Default.GetBytes("MATICSOFT"); return Decrypt(encrypted,key); }/// <summary>/// 使用缺省密钥字符串加密/// </summary>/// <param name="original">原始数据</param>/// <param name="key">密钥</param>/// <returns>密文</returns>public static byte[] Encrypt(byte[] original) { byte[] key = System.Text.Encoding.Default.GetBytes("MATICSOFT"); return Encrypt(original,key); } #endregion#region 使用 给定密钥 加密/解密/byte[]/// <summary>/// 生成MD5摘要/// </summary>/// <param name="original">数据源</param>/// <returns>摘要</returns>public static byte[] MakeMD5(byte[] original){MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); byte[] keyhash = hashmd5.ComputeHash(original); hashmd5 = null; return keyhash;}/// <summary>/// 使用给定密钥加密/// </summary>/// <param name="original">明文</param>/// <param name="key">密钥</param>/// <returns>密文</returns>public static byte[] Encrypt(byte[] original, byte[] key) { TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); des.Key = MakeMD5(key);des.Mode = CipherMode.ECB; return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length); } /// <summary>/// 使用给定密钥解密数据/// </summary>/// <param name="encrypted">密文</param>/// <param name="key">密钥</param>/// <returns>明文</returns>public static byte[] Decrypt(byte[] encrypted, byte[] key) { TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); des.Key = MakeMD5(key); des.Mode = CipherMode.ECB; return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);} #endregion /// <summary> /// 是否通过Base64加密验证 /// </summary> /// <param name="input"></param> /// <returns></returns> public static bool IsBase64Formatted(string input) { try { Convert.FromBase64String(input); return true; } catch { return false; } }}}本人菜鸟,只是以一种简单的方式去判断是否存在这个文件,仅添加一个方法
0 0
- 加密的操作类,包含判断是否加密
- 为项目中的URL中文参数,使用的加密类,包含判断字符是否是中文的方法
- 一个加密帮助类,包含了各种方式的加密
- 通过MD5加密的方式判断图片是否相同
- node判断文件是否为加密文件
- 判断zip,rar 文件是否加密
- AES 的加密操作
- MD5 方式加密文件,判断文件是否被修改的依据:MD5值是否改变
- Oracle的DES加密(在方法中定义密钥、传递密钥并根据传递的密钥判断是否加密)
- 加密操作
- Ancient Cipher(古老的加密(判断译文和密文是否可能对应))
- php 判断skip32 加密后是否有重复
- MD5 加密解密 判断密码是否相等 全套实现方式
- 如何判断一个字符串是否经过base64加密过
- 判断一个字符串是否经过了base64_encode加密
- C++根据加密头信息,判断文件是否为加密文件
- PHP加密数据操作类
- 判断字符串是否包含另外的字符串
- hihocoder:堆
- 11、C语言和设计模式(备忘录模式)
- dave sdk ——信号和连接
- HDU 5364 Distribution money——BestCoder Round #50(div.2)
- The mook jong-dp
- 加密的操作类,包含判断是否加密
- Android Studio快捷键
- 12、C语言和设计模式(解释器模式)
- 如何在window上把你的项目提交到github
- getopt函数的使用
- Android 中odex转成dex
- hdu 5364 Distribution money
- Distribution money(水题--模拟)
- Material Design调色板