- 浏览: 324387 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
杞哈哈:
你好。我是个新手。去官网也没下载下来那个服务器端。有现成的吗? ...
初探JAXER -
sl514:
http://www.bejson.com
JSON学习 -
sl514:
你可以使用JSON在线格式化、校验、视图工具 http://w ...
JSON学习 -
srg23:
好像在FF下不兼容。
教你怎么使网页全部变成灰色的! -
vera_sq:
你的方法我试过,还是不行呢!
AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题
在应用DeflateStream 或GZipStream进行压缩的时候,一定要先调用其实例的Close()方法,否则基流中的被压
缩的数据是不完整的,无法进行解压缩操作。这一点很重要!
对内存流进行加密后应用基流这前一定要调用 CryptoStream 的 FlushFinalBlock 方法,否则无法解密!
public class Serialize
{
// 用于初始化对称密钥
private static byte[] key = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2
};
private static byte[] IV = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6 };
/// <summary>
/// 将对象压缩加密到字节数据
/// </summary>
/// <param name="obj">要压缩加密的对象</param>
/// <returns>处理后生成的字节数组</returns>
public static byte[] CompressEncryptToBytes(object obj)
{
// 建立对称密码信息
MemoryStream ms = new MemoryStream();
RijndaelManaged RM = new RijndaelManaged();
CryptoStream EnCrpStrm = new CryptoStream(ms, RM.CreateEncryptor(key,IV), CryptoStreamMode.Write);
DeflateStream zip = new DeflateStream(EnCrpStrm, CompressionMode.Compress, true);
try
{
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(zip, obj);
zip.Close(); // 在返回(return)这前一定要进行关闭
EnCrpStrm.FlushFinalBlock(); // 在返回(return)这前一定要进行调用。
return ms.ToArray();
}
catch (Exception e)
{
MsgBoxs.Alert(e.ToString());
return null;
}
finally
{
EnCrpStrm.Close();
ms.Close();
}
}
/// <summary>
/// 将字节数组进行解密解压还原成对象
/// </summary>
/// <param name="ary">要处理的字节数组</param>
/// <returns>被还原的对象</returns>
public static object DecompressDecryptToObject(byte[] ary)
{
MemoryStream ms = new MemoryStream(ary);
RijndaelManaged RM = new RijndaelManaged();
CryptoStream DeCrpStrm = new CryptoStream(ms, RM.CreateDecryptor(key, IV), CryptoStreamMode.Read);
DeflateStream UnZip = new DeflateStream(DeCrpStrm, CompressionMode.Decompress);
try
{
BinaryFormatter serializer = new BinaryFormatter();
return serializer.Deserialize(UnZip);
}
catch (Exception e)
{
MsgBoxs.Alert(e.ToString());
return null;
}
finally
{
UnZip.Close();
DeCrpStrm.Close();
ms.Close();
}
}
/// <summary>
/// 将对象压缩到字节数组
/// </summary>
/// <param name="obj">要压缩的对象</param>
/// <returns>压缩后的字节数组</returns>
public static byte[] CompressedToBytes(object obj)
{
MemoryStream ms = new MemoryStream();
DeflateStream zip = new DeflateStream(ms, CompressionMode.Compress, true);
try
{
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(zip, obj);
zip.Close();
byte[] ary = ms.ToArray();
ms.Close();
return ary;
}
catch (Exception e)
{
zip.Close();
ms.Close();
MsgBoxs.Alert(e.ToString());
return null;
}
}
/// <summary>
/// 解压缩后对象
/// </summary>
/// <param name="ary">字节数组</param>
/// <returns>对象</returns>
public static object DecompressToObject(byte[] ary)
{
MemoryStream ms = new MemoryStream(ary);
DeflateStream UnZip = new DeflateStream(ms, CompressionMode.Decompress);
try
{
BinaryFormatter serializer = new BinaryFormatter();
object obj = serializer.Deserialize(UnZip);
UnZip.Close();
ms.Close();
return obj;
}
catch (Exception e)
{
UnZip.Close();
ms.Close();
MsgBoxs.Alert(e.ToString());
return null;
}
}
}
{
// 用于初始化对称密钥
private static byte[] key = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2
};
private static byte[] IV = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6 };
/// <summary>
/// 将对象压缩加密到字节数据
/// </summary>
/// <param name="obj">要压缩加密的对象</param>
/// <returns>处理后生成的字节数组</returns>
public static byte[] CompressEncryptToBytes(object obj)
{
// 建立对称密码信息
MemoryStream ms = new MemoryStream();
RijndaelManaged RM = new RijndaelManaged();
CryptoStream EnCrpStrm = new CryptoStream(ms, RM.CreateEncryptor(key,IV), CryptoStreamMode.Write);
DeflateStream zip = new DeflateStream(EnCrpStrm, CompressionMode.Compress, true);
try
{
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(zip, obj);
zip.Close(); // 在返回(return)这前一定要进行关闭
EnCrpStrm.FlushFinalBlock(); // 在返回(return)这前一定要进行调用。
return ms.ToArray();
}
catch (Exception e)
{
MsgBoxs.Alert(e.ToString());
return null;
}
finally
{
EnCrpStrm.Close();
ms.Close();
}
}
/// <summary>
/// 将字节数组进行解密解压还原成对象
/// </summary>
/// <param name="ary">要处理的字节数组</param>
/// <returns>被还原的对象</returns>
public static object DecompressDecryptToObject(byte[] ary)
{
MemoryStream ms = new MemoryStream(ary);
RijndaelManaged RM = new RijndaelManaged();
CryptoStream DeCrpStrm = new CryptoStream(ms, RM.CreateDecryptor(key, IV), CryptoStreamMode.Read);
DeflateStream UnZip = new DeflateStream(DeCrpStrm, CompressionMode.Decompress);
try
{
BinaryFormatter serializer = new BinaryFormatter();
return serializer.Deserialize(UnZip);
}
catch (Exception e)
{
MsgBoxs.Alert(e.ToString());
return null;
}
finally
{
UnZip.Close();
DeCrpStrm.Close();
ms.Close();
}
}
/// <summary>
/// 将对象压缩到字节数组
/// </summary>
/// <param name="obj">要压缩的对象</param>
/// <returns>压缩后的字节数组</returns>
public static byte[] CompressedToBytes(object obj)
{
MemoryStream ms = new MemoryStream();
DeflateStream zip = new DeflateStream(ms, CompressionMode.Compress, true);
try
{
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(zip, obj);
zip.Close();
byte[] ary = ms.ToArray();
ms.Close();
return ary;
}
catch (Exception e)
{
zip.Close();
ms.Close();
MsgBoxs.Alert(e.ToString());
return null;
}
}
/// <summary>
/// 解压缩后对象
/// </summary>
/// <param name="ary">字节数组</param>
/// <returns>对象</returns>
public static object DecompressToObject(byte[] ary)
{
MemoryStream ms = new MemoryStream(ary);
DeflateStream UnZip = new DeflateStream(ms, CompressionMode.Decompress);
try
{
BinaryFormatter serializer = new BinaryFormatter();
object obj = serializer.Deserialize(UnZip);
UnZip.Close();
ms.Close();
return obj;
}
catch (Exception e)
{
UnZip.Close();
ms.Close();
MsgBoxs.Alert(e.ToString());
return null;
}
}
}
发表评论
-
vs2005操作水晶报表(入门示例)
2008-06-27 17:14 6610vs2005操作水晶报表(入 ... -
C# 字符串DES加/解密与MD5加密类
2008-06-10 17:02 5652C#源码,用.Net封装的类库写的加密和解密的方法,很容易转换 ... -
打印gridview
2008-06-10 16:01 2751打印指定内容: 代码就是这样的. <html> ... -
ASP.NET验证控件祥解
2008-06-10 01:56 1491ASP.NET是微软推出的下一代WEB开发工具,其强大的功能立 ... -
ASP.Net中MD5和SHA1加密的几种方法
2008-06-10 01:55 1643首先简单介绍一下MD5和SHA1:MD5的全称是Message ... -
Asp.net中的日期处理函数
2008-05-22 14:33 1090//2007年4月24日 this.Te ... -
LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Av
2008-05-14 18:02 5602顺便说了一下Where操作 ... -
LINQ简介和LINQ to SQL语句之Where
2008-05-14 17:21 1866查询表达式(LINQ)简介 在 ... -
C# 3.0新语言特性和改进(下篇)
2008-05-14 17:05 1310上一篇我们介绍了C# 3.0 ... -
C# 3.0新语言特性和改进(上篇)
2008-05-14 11:19 1498Visual Studio 2008和.NET 3.5是建立在 ... -
C#SQL数据库操作类
2008-05-13 12:31 2682using System;using System.Confi ... -
C#.net常用函数和方法集汇总
2008-05-13 12:27 9741、DateTime 数字型 System.D ... -
ASP.NET应用程序设计的10大技巧
2008-05-13 12:27 992在本篇文章中,我们将讨论编程人员在使用ASP.NET开发应用程 ... -
asp.net开发常用技巧收集
2008-05-13 12:25 14301. 打开新的窗口并传送参数: 传送参数: response. ... -
C#DateTime函数
2008-05-13 12:24 20821、DateTime 数字型 System.DateTime ... -
c#加密 可逆与不可逆MD5 加密
2008-05-13 11:57 42631、方法一 (不可逆加密) srxljl publ ... -
内存流MemoryStream
2008-05-13 11:41 3685编程访问文件是通过文件流对象进行的,当应用程序需要访问文件时, ... -
.net验证码 创建 CreateRandomCode CreateImage
2008-05-13 11:03 2063新建一个专门用来创建验证码图片的页面image.aspx它的 ... -
一步一步学Linq to sql(一):预备知识
2008-05-13 09:34 899什么是Linq to sql Linq to ... -
ASP.net初学者常用知识
2008-05-10 01:23 1168一位ASP.net初学者学习过程中整理的备忘录,包括“打开新的 ...
相关推荐
如果文件在压缩时已被加密,那么在解压前需要先进行解密操作。 对于包含DLL(动态链接库)的文件夹,压缩过程不会有任何特殊处理,因为DLL本质上也是二进制文件,只需按照普通文件的方式处理即可。不过,在解压后,...
在VB中实现加密和解密过程,通常需要创建对应的加密对象,设置密钥,然后对数据进行操作。例如,使用AES加密: ```vb Dim rijndael As New RijndaelManaged() rijndael.Key = Encoding.ASCII.GetBytes("YourKey") ...
2. **压缩与解压缩**:可以将`GZipStream`或`DeflateStream`封装在`MemoryStream`中,实现数据的压缩和解压缩。 3. **图像处理**:处理图像数据时,可以先将图像转换为字节数组,然后使用`MemoryStream`进行操作,如...
在.NET开发环境中,如果你需要对单个文件进行压缩操作,可以借助第三方库ICSharpCode.SharpZipLib。...此外,ICSharpCode.SharpZipLib库还提供了对解压缩、加密等更多高级功能的支持,可以根据需要进行探索和使用。
本教程将详细阐述如何在C#中使用AES进行数据加密。 首先,我们需要引入必要的命名空间,这可以通过在代码顶部添加以下代码来完成: ```csharp using System; using System.IO; using System.Security.Cryptography;...
6. **文件和流的加密**:C#还提供了一些用于加密文件和流的类,如CryptoStream,可以直接对文件进行加密和解密操作。 在提供的文件列表中,我们看到有".rar"文件,这通常是一个压缩文件,可能包含了加密的示例代码...
3. **迭代压缩**:对每个数据块进行多次压缩操作,每次压缩都将消息的一部分转换成一个128位的摘要。 4. **输出摘要**:所有数据块处理完成后,得到最终的128位MD5摘要。 ### MD5加密特性 - **确定性**:相同的输入...
这个项目可能包括了使用AES或其他加密算法对口令进行哈希或加密的类,以及使用SharpCompress库创建和管理加密RAR文件的函数。通过学习和理解这些源码,开发者可以增强他们的数据安全实践,更好地理解和应用C#中的...
解压文件后 Lib.dll 图库数据文件 基础加密/16进制存储/加密编码 ... //System.IO.MemoryStream ms = new System.IO.MemoryStream(Link.DataLink.EnCode(by)); //Image img=Image.FromStream(ms);
本教程将专注于使用ICSharpCode.SharpZipLib库进行这一操作,这是一个功能强大的开源库,允许开发者执行各种压缩任务,包括创建、读取和修改ZIP文件。 ### 1. 引入库 首先,要在C#项目中使用ICSharpCode....
三、对目标文件解压解压缩文件的过程相对简单,可以通过ZipInputStream来实现。首先创建一个FileStream用于读取zip文件,然后用ZipInputStream包裹这个FileStream。接下来,遍历ZipInputStream中的每个ZipEntry,为...
首先,MD5(Message-Digest Algorithm 5)是广泛使用的一种加密散列函数,它能够将任意长度的数据(信息)压缩成固定长度(128位,即32个字符)的信息摘要。MD5由Ronald L. Rivest于1992年设计,主要用于确保信息...
6. **安全性**: 虽然ICSharpCode.SharpZipLib本身并不直接支持加密,但开发者可以通过其他方式(如使用第三方库)在压缩前对数据进行加密,然后使用该库进行压缩。 7. **性能优化**: 由于SharpZipLib是用C#编写的,...
在.NET开发环境中,有时我们需要对文件进行压缩和解压缩操作,这时可以借助第三方库来实现。本文将深入探讨如何使用`Ionic.Zip`库在C#项目中进行文件的压缩与解压缩,以及如何将该库引入到项目中。 `Ionic.Zip`是一...
- **加密解密**:对于安全性有较高要求的应用程序,可能还需要对图像进行加密处理,此时也需要将图像转换为字节数组。 ### 二、将图像转换为字节数组 #### 方法一:使用`MemoryStream` 使用`MemoryStream`是一种...
在C#编程中,解压缩文件是一项常见的任务,特别...此外,`Ionic.Zip`库还提供了许多其他功能,例如加密压缩、设置压缩级别、添加文件到压缩包等。开发者可以根据具体需求灵活运用这些功能来实现更复杂的文件处理任务。
它不关心数据的实际来源或去向,可以是磁盘文件、网络连接、内存缓冲区甚至是加密或压缩的数据。通过Stream,我们可以处理各种不同的数据源,包括图像文件。 在ASP.NET中,当处理图像时,我们通常会用到System.IO...
在`Main`方法中,创建`Person`实例并对其进行序列化,存储到内存的`MemoryStream`中。然后,我们将`MemoryStream`的位置重置,并从流中反序列化对象。之后,可以通过对象的方法和属性使用反序列化后的对象。 除了...
例如,可以使用SSL/TLS协议对网络通信进行加密,确保数据传输的安全性。 综上所述,"Net音频库[含[1].net语音聊天代码]软件包"是一个涵盖音频处理、网络通信、多线程编程等多个技术领域的学习资源,对于希望深入...