一个加密解密的类,我在WEB里好用,到了WINFORM里不好用,大家给看下(急)

sadan2121 2010-08-31 10:51:06
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;

/// <summary>
///Security 的摘要说明
/// </summary>
public class Security
{
public Security()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/**//**//**//**//**//**//**//// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string EncryptDES(string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey,

rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}

/**//**//**//**//**//**//**//// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string DecryptDES(string decryptString, string decryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey,

rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
}
...全文
86 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sadan2121 2010-08-31
  • 打赏
  • 举报
回复
晕,呵呵,那辛苦你了
chazikai24 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sadan2121 的回复:]
辛苦2位了
[/Quote]
晕,我是一个人啊好,不是两个!
sadan2121 2010-08-31
  • 打赏
  • 举报
回复
辛苦2位了
sadan2121 2010-08-31
  • 打赏
  • 举报
回复
OK,解决,web类,和WINFORM类写法有细微差别,我没注意到。。
chazikai24 2010-08-31
  • 打赏
  • 举报
回复
你是不是要自己再窗体上加点控件?不然虽然上面代码能运行,但是没有调用你的加密解密的方法。
chazikai24 2010-08-31
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
using System.Windows.Forms;
namespace WindowsApplication40
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}
/// <summary>
///Security 的摘要说明
/// </summary>
public class Security
{
public Security()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/**/
/**/
/**/
/**/
/**/
/**/
/**/
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string EncryptDES(string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey,

rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}

/**/
/**/
/**/
/**/
/**/
/**/
/**/
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string DecryptDES(string decryptString, string decryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey,

rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
}
}
}

winform程序没有窗体?
sadan2121 2010-08-31
  • 打赏
  • 举报
回复
private static byte[] Keys
public static string EncryptDES
byte和string 报错,说应输入 class、delegate、enum、interface 或 struct F:\wjq\wodediyigchuangtishiyan\wodediyigchuangtishiyan\Security.cs 12 27 wodediyigchuangtishiyan
----------Database-------------- 1.DataTable帮助(DataTableHelper.cs)2.Access数据库文件操作辅助(JetAccessUtil.cs)3.常用的Access数据库Sql操作辅助库(OleDbHelper.cs4.根据各种不同数据库生成不同【分页语句的辅助】 PagerHelper(PageHelper.cs)5.查询条件组合辅助(SearchCondition.cs)6.查询信息实体(SearchInfo.cs)7.型(例如:int,string,double)转换(SmartDataReader.cs)8.Sql命令操作函数(可用于安装程序的时候数据库脚本执行)(SqlScriptHelper.cs) ----------Device-------------- 声音播放辅助(AudioHelper.cs)摄像头操作辅助,包括开启、关闭、抓图、设置等功能(Camera.cs) 提供用于操作【剪切板】的方法(ClipboardHelper.cs) 获取电脑信息(Computer.cs)提供用户硬件唯一信息的辅助(FingerprintHelper.cs)读取指定盘符的硬盘序列号(HardwareInfoHelper.cs)提供访问键盘当前状态的属性(KeyboardHelper.cs) 全局键盘钩子。这可以用来在全球范围内捕捉键盘输入。(KeyboardHook.cs) 模拟鼠标点击(MouseHelper.cs)全局鼠标钩子。这可以用来在全球范围内捕获鼠标输入。(MouseHook.cs)MP3文件播放操作辅助(MP3Helper.cs) ----------Encrypt-------------- 基于Base64的加密编码(Base64Util.cs)字符串的加密/解密(EncodeHelper.cs)MD5各种长度加密字符、验证MD5等操作辅助(MD5Util.cs)QQ的EncryptUtil(QQEncryptUtil.cs) 非对称加密验证辅助(RSASecurityHelper.cs) ----------File-------------- 用于获取或设置Web.config/*.exe.config中节点数据的辅助(AppConfig.cs)CSV文件和DataTable对象转换辅助(CSVHelper.cs)DatabaseInfo 的摘要说明。(DatabaseInfo.cs)常用的目录操作辅助(DirectoryUtil.cs) Excel操作辅助(无需VBA引用)(ExcelHelper.cs)利用VBA对象,导出DataView到一个Excel文档中的Excel辅助(Export2Excel.cs)关联文件(ExtensionAttachUtil.cs)注册文件关联的辅助(FileAssociationsHelper.cs)打开、保存文件对话框操作辅助(FileDialogHelper.cs)常用的文件操作辅助FileUtil(FileUtil.cs)INI文件操作辅助(INIFileUtil.cs)独立存储操作辅助(IsolatedStorageHelper.cs)序列号操作辅助(Serializer.cs)获取一个对象,它提供用于访问经常引用的目录的属性。(SpecialDirectories.cs)简单的Word操作对象(WordCombineUtil.cs)这个提供了一些实用的方法来转换XML和对XmlConvertor.cs)XML操作(XmlHelper.cs) ----------Format-------------- 参数验证的通用验证程序。(ArgumentValidation.cs)这个提供了实用方法的字节数组和图像之间的转换。(ByteImageConvertor.cs)byte字节数组操作辅助(BytesTools.cs) 处理数据型转换,数制转换、编码转换相关的(ConvertHelper.cs) CRC校验辅助(CRCUtils.cs) 枚举操作公共(EnumHelper.cs) 身份证操作辅助(IDCardHelper.cs) 检测字符编码的(IdentifyEncoding.cs) RGB颜色操作辅助(MyColors.cs) 日期操作(MyDateTime.cs) 转换人民币大小金额辅助(RMBUtil.cs) 常用的字符串常量(StringConstants.cs) 简要说明TextHelper。(StringUtil.cs) 获取中文字首字拼写,随机发生器,按指定概率随机执行操作(Util.cs) 各种输入格式验证辅
----------Database-------------- 1.DataTable帮助(DataTableHelper.cs) 2.Access数据库文件操作辅助(JetAccessUtil.cs) 3.常用的Access数据库Sql操作辅助库(OleDbHelper.cs) 4.根据各种不同数据库生成不同【分页语句的辅助】 PagerHelper(PageHelper.cs) 5.查询条件组合辅助(SearchCondition.cs) 6.查询信息实体(SearchInfo.cs) 7.型(例如:int,string,double)转换(SmartDataReader.cs) 8.Sql命令操作函数(可用于安装程序的时候数据库脚本执行)(SqlScriptHelper.cs) ----------Device-------------- 1.声音播放辅助(AudioHelper.cs) 2.摄像头操作辅助,包括开启、关闭、抓图、设置等功能(Camera.cs) 3.提供用于操作【剪切板】的方法(ClipboardHelper.cs) 4.获取电脑信息(Computer.cs) 5.提供用户硬件唯一信息的辅助(FingerprintHelper.cs) 6.读取指定盘符的硬盘序列号(HardwareInfoHelper.cs) 7.提供访问键盘当前状态的属性(KeyboardHelper.cs) 8.全局键盘钩子。这可以用来在全球范围内捕捉键盘输入。(KeyboardHook.cs) 9.模拟鼠标点击(MouseHelper.cs) 10.全局鼠标钩子。这可以用来在全球范围内捕获鼠标输入。(MouseHook.cs) 11.MP3文件播放操作辅助(MP3Helper.cs) ----------Encrypt-------------- 1.基于Base64的加密编码(Base64Util.cs) 2.字符串的加密/解密(EncodeHelper.cs) 3.MD5各种长度加密字符、验证MD5等操作辅助(MD5Util.cs) 4.QQ的EncryptUtil(QQEncryptUtil.cs) 5.非对称加密验证辅助(RSASecurityHelper.cs) ----------File-------------- 1.用于获取或设置Web.config/*.exe.config中节点数据的辅助(AppConfig.cs) 2.CSV文件和DataTable对象转换辅助(CSVHelper.cs) 3.DatabaseInfo 的摘要说明。(DatabaseInfo.cs) 4.常用的目录操作辅助(DirectoryUtil.cs) 5.Excel操作辅助(无需VBA引用)(ExcelHelper.cs) 6.利用VBA对象,导出DataView到一个Excel文档中的Excel辅助(Export2Excel.cs) 7.关联文件(ExtensionAttachUtil.cs) 8.注册文件关联的辅助(FileAssociationsHelper.cs) 9.打开、保存文件对话框操作辅助(FileDialogHelper.cs) 10.常用的文件操作辅助FileUtil(FileUtil.cs) 11.INI文件操作辅助(INIFileUtil.cs) 12.独立存储操作辅助(IsolatedStorageHelper.cs) 13.序列号操作辅助(Serializer.cs) 14.获取一个对象,它提供用于访问经常引用的目录的属性。(SpecialDirectories.cs) 15.简单的Word操作对象(WordCombineUtil.cs) 16.这个提供了一些实用的方法来转换XML和对象。(XmlConvertor.cs) 17.XML操作(XmlHelper.cs) ----------Format-------------- 1.参数验证的通用验证程序。(ArgumentValidation.cs) 2.这个提供了实用方法的字节数组和图像之间的转换。(ByteImageConvertor.cs) 3.byte字节数组操作辅助(BytesTools.cs) 4.处理数据型转换,数制转换、编码转换相关的(ConvertHelper.cs) 5.CRC校验辅助(CRCUtils.cs) 6.枚举操作公共(EnumHelper.cs) 7.身份证操作辅助(IDCardHelper.cs) 8.检测字符编码的(IdentifyEncoding.cs) 9.RGB颜色操作辅助(MyColors.cs) 10.日期操作(MyDateTime.cs) 11.转换人民币大小金额辅助(RMBUtil.cs) 12.常用的字符串常量(StringConstants.cs) 13.简要说明TextHelper。(StringUtil.cs) 14.获取中文字首字拼写,随机发生器,按指定概率随机执行操作(Util.cs) 15.各种输入格式验证辅助(ValidateUtil.cs) ----------Network-------------- 1.Cookie操作辅助(CookieManger.cs) 2.FTP操作辅助(FTPHelper.cs) 3.HTML操作(HttpHelper.cs) 4.网页抓取帮助(HttpWebRequestHelper.cs) 5.Net(NetworkUtil.cs) 6.IE代理设置辅助(ProxyHelper.cs) ----------Winform-------------- 1.跨线程的控件安全访问方式(CallCtrlWithThreadSafety.cs) 2.CheckBoxList(CheckBoxListUtil.cs) 3.窗口管理(ChildWinManagement.cs) 4.由马丁·米勒http://msdn.microsoft.com/en-us/library/ms996492.aspx提供一个简单的方法打印工作的一个RichTextBox一个帮手(ExRichTextBoxPrintHelper.cs) 5.显示,隐藏或关闭动画形式。(FormAnimator.cs) 6.对窗体进行冻结、解冻操作辅助(FreezeWindowUtil.cs) 7.窗体全屏操作辅助(FullScreenHelper.cs) 8.GDI操作辅助(GDI.cs) 9.提供静态方法来读取这两个文件夹和文件的系统图标。(IconReaderHelper.cs) 10.图片对象比较、缩放、缩略图、水印、压缩、转换、编码等操作辅助(ImageHelper.cs) 11.输入法帮助,全角 转换为半角(ImeHelper.cs) 12.Winform提示框 的摘要说明。(MessageUtil.cs) 13.包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 14.托盘图标辅助(NotifyIconHelper.cs) 15.打印机(POSPrinter.cs) 16.图片、光标、图标、位图等资源操作辅助(ResourceHelper.cs) 17.RTF字符格式辅助(RTFUtility.cs) 18.串口开发辅助(SerialPortUtil.cs) 19.设置文本属性提供一个ToolStripStatusLabel(SafeToolStripLabel.cs) 20.只运行一个实例及系统自动启动辅助(StartupHelper.cs) 21.Web页面预览效果图片抓取辅助WebPageCapture.cs) 22.供Asp.Net直接调用的包装(WebPreview.cs) 23.计算机重启、关电源、注销、关闭显示器辅助(WindowsExitHelper.cs) ----------NONONONO-------------- 1.全局统一的缓存(Cache.cs) 2.常用显示日期时间、农历、生肖的日历(CCalendar.cs,DateTimeHelper.cs) 3.中国农历年处理(ChineseCalendar.cs) 4.正则表达式辅助(CRegex.cs) 5.CString 的摘要说明。(CString.cs) 6.CText文本内容的库(CText.cs) 7.初始化语言环境(CultureInfoUtil.cs) 8.压缩文本、字节或者文件的压缩辅助(GZipUtil.cs) 9.Log4Net日志记录辅助(LogHelper.cs) 10.中文字符串转换为拼音或者拼音首字母的辅助(PinYinUtil.cs) 11.随机汉字辅助(RandomChinese.cs) 12.反射操作辅助,如获取或设置字段、属性的值等反射信息。(ReflectionUtil.cs) 13.注册表操作辅助(RegistryHelper.cs) 14.用于验证码图片识别的(UnCodebase.cs) 15.将原始字串转换为unicode,格式为\u.\u.( UnicodeHelper.cs)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧