计算机安全对称加密和解密

对称加密和解密相信经常关注网络安全的朋友一定对加密解密、数字签名的基本原理有了初步的了解,那么 下面我们看一下在met中是如何来支持加密解密的。正如大家所了解的分类,met中也提 供了两组类用于加密解

对称加密和解密 相信经常关注网络安全的朋友一定对加密解密、数字签名的基本原理有了初步的了解,那么 下 面我们看一下在中是如何来支持加密解密的。正如大家所了解的分类,中也提 供了两 metmet 组类用于加密解密,一组为对称加密,一组为非对称加密,上面的类按照名称还可以 分为两组, 一组后缀为的,是对于底层的包装类, 一组后缀为 “CryptoServiceProvider”windows API 是在中全新编写的类。现在假设我们以作为算法, 那么加密的流 “Managed".netTripleDES , 程如下: 先仓建一个 的实例,实例名比如叫 。 TripleDESCryptoServiceProvider provider 在上指定密钥和也就是它的属性和属性。这里简单解释一下 providerIV,KeyIVIV 如果一个字符串(或者数据)加密之前很多部分是重复的比如 (initialization vector), 那么加密之后尽管字符串是乱码,但相关部分也是重复的。为了解决这个 问题, ABCABCABC, 就引入了 当使用它以后,加密之后即使是重复的也被打乱了。对于特定算法, 密钥和的 IV,IV 值可以随意指定,但长度是固定,通常密钥为位或位,为位。密 钥和都是 128196IV64IV □类型,因此,如果使用类来将字符串转换为那么 编码方式就很重要, byteEncodingbyte[], 因为是变长编码,所以对于中文和英文,需要特别注意的长度问题。 UTF8byte[] 如果是加密,在 上调用 。方法,创建一个 类型 provider CreateEncryptorICryptoTransform 的加密器对象;如果是解密,在上调用「()方法,同样是 创建一个 providerCreateDecrypto 类型的解密器对象。定义了加密转换的 运算,将在 ICryptoTransformICryptoTransform.net 底层调用这个接口。 因为流和□是数据类型无关的一种数据结构,可以保存和传输任何形式的数据,区别 只是 byte □是一个静态的概念而流是一个动态的概念。因此,采用了流的方式进行加 密和解密, byte.net 我们可以想到有两个流,一个是明文流,含有加密前的数据;一个是密文流,含 有加密后的数据。 那么就必然有一个中介者,将明文流转换为密文流;或者将密文流转换为 明文流。中执行 .net 这个操作的中介者也是一个流类型,叫做「。它的构造 函数如下,共有三个参数: CryptoSteam public CryptoStream(Stream stream, ICryptoTransform transform, CryptoStream Mode mode) 当加密时,为密文流(注意此时密文流还没有包含数据,仅仅是一个空流); stream 是第步创建的加密器,包含着加密的算法;举为 ICryptoTransform3CryptoStreamMode 意思是将流经的明文流写入到密文流中。最后,从密文流中 获得加密后 Write,CryptoStream 的数据。 当解密时,为密文流(此时密文流含有数据);是第步创建的 解密 streamICryptoTransform3 器,包含着解密的算法;枚举为意思是将密文流中的数 据读出到 CryptoStreamModeRead, 口数组中,进而再由口转换为明文流、明文字符串。 bytebyte 可见,总是接受密文流,并且根据枚举的值来决定 是将 CryptoStreamCryptoStreamMode

腾讯文库计算机安全对称加密和解密