- 1、本文档共55页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章数据加密与数字签名.
12.2.1 字符串的加密和解密 加密字符串的关键问题是如何安全地保存解密密钥、导出密钥以及导入密钥。 【例12-1】利用RSA不对称加密算法加密字符串,用密钥容器保存密钥信息,并能导出和导出密钥,分别输出加密和解密后的结果。 图12-1 例12-1的运行效果 11.2.2 一般文件的加密和解密 对于普通的文件来说,常用有两种加密方式: 一种是直接使用File类提供的静态的Encrypt方法加密,用对应的Decrypt方法解密。这种方式适用于执行加密和解密操作的用户属于同一个操作系统用户,而且当前文件系统必须格式化为NTFS的情况。 另一种加密方法是先利用对称加密加密文本文件,再利用不对称加密加密对称加密的KEY和IV,并将加密后的对称加密的KEY和IV与加密后的文本文件一起保存。这种方式比较灵活,既适用于同一个用户,也适用于不同的用户,而且可以单独保存解密密钥。 11.2.2 一般文件的加密和解密(续) 【例12-2】利用不对称加密算法加密对称加密的密钥KEY和 IV,再利用对称加密加密文件,输出加密和解密后的结果。 图12-2 例12-2的运行效果 11.2.3 不对称加密相关类--XML加密解密 利用RSA算法加密解密XML文档 可以使用 System.Security.Cryptography.Xml 命名空间中的类对 XML 文档中的元素进行加密。 XML 加密是交换或存储加密的 XML 数据的标准方法,无需担心数据被轻易读取。 可以用包含加密的 XML 数据的 EncryptedData 元素替换任何 XML 元素或文档。 EncryptedData 元素可以包含一些子元素来收入关于加密期间使用的密钥和进程的信息。 11.2.3 不对称加密相关类(续)--XML加密解密 11.2.3不对称加密相关类(续)--XML加密解密 EncryptedData元素: 原资源经过XML Encryption作用后的结果,将替代原资源,有下列常见子元素和属性: Type(可选): element, content. 它们用于区别是否加密tag(标签)。如果Type设为element将加密整个元素包括tag在内, 而设为content时只对元素中的内容加密。EncryptionMethod (可选) :指定加密将使用的算法。CipherData (可选) :原资源加密后的结果 xmlns(可选):指定用来加密XML数据的XML加密名称空间 EncryptionProperties(可选):元素用于为加密的数据添加一些额外的信息,比如加密发生的时间。 8.3 不对称加密相关类(续)--XML加密解密 KeyInfo(可选):描述加密所使用的密钥,如果采用对称加密算法,那么私钥直接存放在KeyInfo里面是不安全的。此时有以下几种方法: ?? 1. 不使用KeyInfo元素:假定双方已经约定好了加密使用的密钥。2. 在KeyInfo中的KeyName属性指定一个标识:假定消息接收方已经拥有了解密所需的密钥,通过这个标识,消息接收方接可以定位到此次解密所需要的密钥。 3. 存储加密后的对称密钥。为了使用第三种方法,KeyInfo加入的扩展元素EncryptedKey。EncryptedKey和EncryptedData具有类似的结构,如图4所示 11.2.3 XML文件的加密和解密 利用XML加密技术,既可以对一个文档中的多个元素进行加密,也可以对同一个元素进行多次加密。 【例12-3】用AES和RSA算法加密解密XML文件。 加密时,首先生成RSA公钥/私钥对,并将其保存到密钥容器中,然后使用AES算法对XML文档进行加密,再用RSA公钥对AES密钥进行加密,最后将加密后的AES密钥和加密后的XML数据保存到XML文档中的EncryptedData元素中。 解密XML元素时,先从密钥容器中检索出先前生成的RSA私钥,然后用该RSA密钥对存储在EncryptedData元素的EncryptedKey元素中的AES密钥进行解密,最后用该密钥解密XML元素。 11.2.3 XML文件的加密和解密(续) 图12-3 例12-3的运行效果 11.2.3 XML文件的加密和解密(续) 注意: 不要以纯文本格式存储对称加密密钥,也不要用纯文本在计算机之间传输对称密钥。另外,不要用纯文本存储或传输非对称密钥对的私钥。 不要将密钥直接嵌入到源代码中。可以通过使用 MSIL 反汇编程序 (Ildasm.exe),或通过在诸如“记事本”的文本编辑器中打开程序集,从程序集轻松读取嵌入的密钥。 密钥容器保存密钥 11.3 网络应用中数据的加密解密 目标:A希望将大量加密后的数据传递给B。由于数据量大,A需要使用对
文档评论(0)