- 浏览: 459951 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (429)
- C# (55)
- PHP (7)
- 生活 (17)
- VB.NET (1)
- ASP (1)
- XML (0)
- AJAX (1)
- ASP.NET (1)
- [随笔分类]C# (9)
- [网站分类]程序人生 (1)
- [网站分类]ASP.NET (1)
- [网站分类]SQL Server (1)
- [发布至博客园首页] (10)
- [随笔分类]MYSQL (1)
- [随笔分类]AJAX (2)
- [随笔分类]ASP.NET (5)
- [随笔分类]SQL SERVER (7)
- [网站分类].NET新手区 (89)
- [网站分类]企业信息化 (2)
- [网站分类]非技术区 (22)
- [网站分类]代码与软件发布 (18)
- [网站分类]业界新闻 (1)
- [网站分类]其他技术区 (14)
- [网站分类]转载区 (1)
- [随笔分类]生活 (5)
- [随笔分类]PHP (2)
- [网站分类]jQuery (2)
- [网站分类]提问区 (1)
- [随笔分类]ASP (2)
- [随笔分类]VB.NET (7)
- [随笔分类]XML (1)
- [随笔分类]ACCESS (1)
- [随笔分类]ORACLE (3)
最新评论
-
hz_qiuyuanxin:
楼主,那如何实时监控打印机的状态呢?
C#遍历系统所安装的打印机,使用WMI方式获取打印机的所有属性 -
CoderDream:
不知道如何美化SQL
Sql Server Management Studio 辅助工具(SSMS代码格式化) -
ifox:
没了?????????、·············
Sql Server Management Studio 辅助工具(SSMS代码格式化) -
lovebeaners:
Windows Live Writer 表情插件------酷表情(CoolEmotion)发布 -
tvjody:
C#做这个很方便啊
C#、VB.NET 使用System.Media.SoundPlayer播放音乐
今天,看到网友咨询DES加密的事,就写了下面的类库,sharing 一下,欢迎多交流
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Security; using System.Security.Cryptography; /*---------------------------------------------- * DES加密、解密类库,字符串加密结果使用BASE64编码返回,支持文件的加密和解密 * 作者: 三角猫/DeltaCat * 网址: http://www.zu14.cn * 转载务必保留此信息 * --------------------------------------------- */ namespace ZU14 { public sealed class DES { string iv = "1234的yzo"; string key = "123在yzo"; /// <summary> /// DES加密偏移量,必须是>=8位长的字符串 /// </summary> public string IV { get { return iv; } set { iv = value; } } /// <summary> /// DES加密的私钥,必须是8位长的字符串 /// </summary> public string Key { get { return key; } set { key = value; } } /// <summary> /// 对字符串进行DES加密 /// </summary> /// <param name="sourceString">待加密的字符串</param> /// <returns>加密后的BASE64编码的字符串</returns> public string Encrypt(string sourceString) { byte[] btKey = Encoding.Default.GetBytes(key); byte[] btIV = Encoding.Default.GetBytes(iv); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); using (MemoryStream ms = new MemoryStream()) { byte[] inData = Encoding.Default.GetBytes(sourceString); try { using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write)) { cs.Write(inData, 0, inData.Length); cs.FlushFinalBlock(); } return Convert.ToBase64String(ms.ToArray()); } catch { throw; } } } /// <summary> /// 对DES加密后的字符串进行解密 /// </summary> /// <param name="encryptedString">待解密的字符串</param> /// <returns>解密后的字符串</returns> public string Decrypt(string encryptedString) { byte[] btKey = Encoding.Default.GetBytes(key); byte[] btIV = Encoding.Default.GetBytes(iv); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); using (MemoryStream ms = new MemoryStream()) { byte[] inData = Convert.FromBase64String(encryptedString); try { using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write)) { cs.Write(inData, 0, inData.Length); cs.FlushFinalBlock(); } return Encoding.Default.GetString(ms.ToArray()); } catch { throw; } } } /// <summary> /// 对文件内容进行DES加密 /// </summary> /// <param name="sourceFile">待加密的文件绝对路径</param> /// <param name="destFile">加密后的文件保存的绝对路径</param> public void EncryptFile(string sourceFile, string destFile) { if (!File.Exists(sourceFile)) throw new FileNotFoundException("指定的文件路径不存在!", sourceFile); byte[] btKey = Encoding.Default.GetBytes(key); byte[] btIV = Encoding.Default.GetBytes(iv); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] btFile = File.ReadAllBytes(sourceFile); using (FileStream fs = new FileStream(destFile, FileMode.Create, FileAccess.Write)) { try { using (CryptoStream cs = new CryptoStream(fs, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write)) { cs.Write(btFile, 0, btFile.Length); cs.FlushFinalBlock(); } } catch { throw; } finally { fs.Close(); } } } /// <summary> /// 对文件内容进行DES加密,加密后覆盖掉原来的文件 /// </summary> /// <param name="sourceFile">待加密的文件的绝对路径</param> public void EncryptFile(string sourceFile) { EncryptFile(sourceFile, sourceFile); } /// <summary> /// 对文件内容进行DES解密 /// </summary> /// <param name="sourceFile">待解密的文件绝对路径</param> /// <param name="destFile">解密后的文件保存的绝对路径</param> public void DecryptFile(string sourceFile, string destFile) { if (!File.Exists(sourceFile)) throw new FileNotFoundException("指定的文件路径不存在!", sourceFile); byte[] btKey = Encoding.Default.GetBytes(key); byte[] btIV = Encoding.Default.GetBytes(iv); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] btFile = File.ReadAllBytes(sourceFile); using (FileStream fs = new FileStream(destFile, FileMode.Create, FileAccess.Write)) { try { using (CryptoStream cs = new CryptoStream(fs, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write)) { cs.Write(btFile, 0, btFile.Length); cs.FlushFinalBlock(); } } catch { throw; } finally { fs.Close(); } } } /// <summary> /// 对文件内容进行DES解密,加密后覆盖掉原来的文件 /// </summary> /// <param name="sourceFile">待解密的文件的绝对路径</param> public void DecryptFile(string sourceFile) { DecryptFile(sourceFile, sourceFile); } } }
使用的例子:
ZU14.DES des = new ZU14.DES(); des.IV = "abcd哈哈笑"; des.Key = "必须八位"; string es = des.Encrypt("在"); Console.WriteLine(es); Console.Write(des.Decrypt(es)); des.EncryptFile(@"d:\a.txt", @"d:\b.txt"); des.DecryptFile(@"d:\b.txt"); Console.ReadKey(true);
OK了。
发表评论
-
JS设置表格选中行的背景色
2008-11-08 16:29 1362<iframe src="http://www ... -
.NET C# 群发 HTML格式 带附件 中文发送者 密送 抄送 的邮件
2008-11-08 16:31 847<iframe src="http://www ... -
C# 操作 Xml 的两种方式 XPath XmlDocument XmlNodeList
2008-11-11 19:51 882<iframe src="http://www ... -
Timer 使用的注意事项
2008-11-14 13:41 595<iframe src="http://www ... -
邮件标头中找到无效字符(An invalid character was found in header value) System.Net.Mail 的Bug
2008-11-18 17:04 1468<iframe src="http://www ... -
WebBrowser控件禁用超链接转向、脚本错误提示、默认右键菜单和快捷键
2008-11-19 10:03 878<iframe src="http://www ... -
IIS6 启用 HTTP 压缩 (gzip, deflate)
2008-11-20 15:32 558<iframe src="http://www ... -
Winform DataGridView中利用WebClient异步加载显示网络地址的图片
2008-11-21 14:40 897<iframe src="http://www ... -
数学运算表达式形式的验证码 C# Asp.Net
2008-11-22 22:12 788<iframe src="http://www ... -
Web2.0 工具、资源网站汇
2008-11-27 19:50 718原文: http://www.zu14.cn/2008/11/ ... -
Online Ajax Translation With Google Api
2008-11-29 13:31 757原文地址: http://www.zu14.cn/2008/1 ... -
.NET C# 异步发送 要求回执 嵌入图片资源 自定义邮件头 失败通知 html/文本双视图 支持 notes 的邮件
2008-12-02 14:37 999原帖地址: http://www.zu14.cn/2008/1 ... -
Javascript/Js load xml file, support ie and firefox
2008-12-06 18:22 593<iframe src="http://www ... -
随机取数据库中的记录
2008-12-11 10:48 587原帖地址: http://www.zu14.cn/2008/1 ... -
.net 利用 CultureInfo 动态设置 货币和日期的显示方式
2008-12-12 14:40 613http://www.zu14.cn/2008/12/12/n ... -
.net里面照样使用 escape 和 unescape (c# csharp vb.net jscript.net)
2008-12-14 20:36 682javascript 脚本,有个 escape 和 unesc ... -
C# 中 using 的三种使用方法
2008-12-16 16:20 685引入命名空间 using System; usin ... -
asp.net + winform + log4net 使用示例|using log4net with asp.net/winform
2008-12-27 14:01 979log4net, 是 apache.org 在 log4j的基 ... -
.Net 对 规则Excel 的操作全攻略,支持excel 2000 ~ excel 2007(OleDbHelper)
2008-12-30 16:18 830规则的Excel文件,就是一个文本型的数据库,利用oledb或 ... -
提供一下 微软 的 SqlHelper 给大家共享
2008-12-31 15:32 632<script type="text/java ...
相关推荐
本文将深入探讨一个基于C#的文件加密解密类库,该库专为Windows系统设计,旨在为文件提供安全的加密和解密服务。源码的提供不仅方便了开发者直接使用,也为学习和理解加密算法提供了宝贵的资源。 C#是一种面向对象...
加密字符串 加密字符串 密钥为系统默认 加密文件 解密字符串 解密文件 128位MD5算法加密字符串 128位MD5算法加密Byte数组 32位MD5加密 Base64加密 Base64解密 DES加密/解密类。 加密 加密数据 解密 解密数据 得到...
DES加密/解密类成熟的加密解密类,适合项目开发,可以对于明文进行加密
本文将深入探讨如何使用C#进行DES加密和解密字符串,以及相关的重要知识点。 首先,DES是一种块加密算法,它以64位的数据块进行操作,其中实际有效密钥长度为56位。在C#中,可以使用`System.Security.Cryptography`...
在C# WinForm项目中,Base64加密和解密是处理数据安全和传输的重要部分。 Base64编码原理: Base64编码是将每3个8位字节(24位)的数据转换成4个6位字节(24位)的数据,并用64个字符集中的字符来表示这4个6位字节...
在IT领域,安全是至关重要的,特别是在数据存储和...综上所述,C#中的DES加密和解密提供了对字符串和文件的安全保护。通过理解并熟练运用这些技术,开发者可以在项目中确保数据的安全性,防止未经授权的访问和篡改。
本篇文章将深入探讨如何使用C#语言实现DES对文件的加密和解密操作。 首先,了解DES算法的基础知识。DES是一种块加密算法,每个数据块大小为64位,实际用于加密的有效数据为56位,因为8位用于奇偶校验。它采用了一种...
QT C++ AES字符串加密解密类库是一种在C++编程环境中使用QT框架实现的高级加密标准(AES)加密和解密工具。QT是一个流行的开源跨平台应用开发框架,广泛应用于桌面、移动和嵌入式系统。AES是目前广泛应用的对称加密...
文档中所提到的代码通过.NET框架的System.Security.Cryptography命名空间下的类库来实现DES加密和解密操作,并且确保了加密后的字符串为定长输出,这通常是通过Base64编码来达成的。本文档还涉及到了异常处理和界面...
在.NET框架中,C#语言提供了丰富的加密和解密功能,其中包括DES(Data Encryption Standard)算法。DES是一种对称加密算法,它使用相同的密钥进行数据的加密和解密。本篇文章将深入探讨C#中如何实现DES加密解密,并...
总的来说,这个C#版的字符串DES加密解密工具源码是一个很好的学习资源,可以帮助开发者深入理解加密和解密的原理,以及如何在实际项目中应用这些技术。在实际开发中,结合最新的加密标准和最佳实践,可以确保数据的...
在C#编程语言中,Base64是一种用于将二进制数据编码为ASCII字符串的机制,以便在不支持二进制传输的系统(如电子邮件)中传输。Base64编码可以将任何二进制数据转换为可打印的字符,包括图片、文件和其他非文本数据...
根据标准的C改的源码,与网上所搜索到的完全不一样,可以支持中文为密钥的加密,也可以支持为中文字符串的加密,如,密钥为:替天行道,明文为:来自替天行道的C#DES标准ECB加密解密示例源码,加密后为:16505C9E77...
本项目包含了一个C#实现的各种加密方式的小工具,包含了可以直接运行的源代码以及类库文件,用户不仅可以编译这些源代码,还可以直接运行它们,从而在实际项目中应用这些加密和解密技术。 首先,我们要理解加密和...
5. 编码与解码:在加密和解密完成后,需要将整型值再转换回字符,这可以通过反向转换完成,例如从ASCII或Unicode值恢复到字符。 C#代码示例: ```csharp public string ShiftEncrypt(string plaintext, int key) { ...
带加密字符的 加密 解密方法 static string encryptKey = "加密字符"; 自定义加密字符(加密解密必须一致才能解密) /// /// 加密字符串 /// </summary> /// name="str">要加密的字符串</param> ...
本主题聚焦于"C#/JS AES字符串加密和解密",这是一种常用的方法,用于在前端JavaScript和后端C#之间安全地传输数据。 AES(Advanced Encryption Standard),即高级加密标准,是一种广泛使用的对称加密算法,因其...
DES加密解密算法。通过密钥对对字符串进行加密解密操作,64位加密
在这种情况下,可以通过XML字符串或Base64编码将密钥和加密后的数据传输。例如,你可以将公钥XML字符串发送给另一方,接收方解析这个字符串并使用它来加密数据,然后将加密后的数据发送回来,你再用私钥解密。 总结...
3. **支持中文与全角字符**: 在Base64编码中,所有字符都视为字节进行处理,因此它理论上能处理任何二进制数据,包括中文和全角字符。然而,Base64编码本身并不关心编码格式,因此在编码前应确保数据已正确地按照...