-
大小: 22KB文件类型: .zip金币: 2下载: 1 次发布日期: 2021-05-24
- 语言: 其他
- 标签: XML Encryption Decryption
资源简介
xml加密(XML Encryption)是w3c加密xml的标准。这个加密过程包括加密xml文档的元素及其子元素,通过加密,xml的初始内容将被替换,但其xml格式仍然被完好的保留。
介绍
我们有3个加密xml的方法
1、仅仅使用对称加密的方法加密xml
这种加密方法只使用一个密钥,也就是说无论是加密xml还是解密xml都使用一个相同的密钥。因为这个密钥不会在被加密的xml中保存,所以我们需要在加密和解密的过程中加载这个密钥并保护它不被窃取。
2、使用对称加密和非对称加密相结合的方法来加密xml
这种方法需要一个用于加密数据的对称密钥和一个用于保护这个对称密钥的非对称密钥。被加密的对称密钥和被加密的数据一起保存在xml文档中。当用私有非对称密钥解密密钥的时候要用公开非对称密钥对密钥进行加密。
本文就将使用这种方法。想学到其他更多的方法请参看MSDN等到更多的信息。
(译者注:非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。)
3、使用X.509加密xml,这种方法是用X.509作为非对称密钥,它由诸如VeriSign之类的第三方提供。
方法
不管xml加密是如何完成的,保存加密数据总是用两种方法之一。
1、加密后所有的元素都被命名为
2、加密后只有数据被替换,而元素名称仍然是可读的,不会发生变化。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//required for xmlDocument
using System.xml;
//required for performing RSA encryption
using System.Security.Cryptography;
//required to use Encryptedxml object requires the System.Security assembly to be referenced
using System.Security.Cryptography.xml;
/*
*
*
*
*
*
*
*
*/
namespace xmlEncryption
{
///
///
///
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
///
///
/// RSA asymmetric algorithim used to encrypt the session key key is generated during the encryption process
/// in this example a key is generated however in an actual application you will need to load and save the
/// keys as appropriate
///
///
RSACryptoServiceProvider rsa;
///
///
/// Loads the xml into an xml document and encrypts the full document from the root
/// it does not cover selecting and encrypting individual nodes in the document
/// however the place where this code would be placed is highlighted.
///
/// It also doesn‘t cover loading or saving the asymmetric keys
/// the key is created in the encrypt method and because of the way the application works the same key is used to decrypt
/// a new key is generated every time an encyption is ran
///
///
///
///
private void encryptToolStripMenuItem_Click(object sender EventArgs e)
{
//check there is xml to encrypt
if (string.IsNullOrEmpty(this.txtxml.Text) == false)
{
try
{
//1. load the xml in to a document full document will be encrypted
xmlDocument xmlDoc = new xmlDocument();
xmlDoc.Loadxml(this.txtxml.Text);
//2. Generate an asymmetric key (RSA is used) rsa object needs to have class level
//as it‘s used to decrypt the encrypted xml later in the class
rsa = new RSACryptoServiceProvider();
//3. Select the element that will be encrypted
xmlElement xmlElemt;
xmlElemt = xmlDoc.DocumentElement; //at this point you could use SelectSingleNode
//to select a specific node to encrypt
//4. Encrypt the element in the document using the Encryptedxml object
//the Encryptedxml object is found in the System.Security.Cryptography.xml namespace
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2006-10-15 01:34 xm
文件 5742 2006-10-15 05:18 xm
文件 8403 2006-10-15 02:09 xm
文件 6213 2006-10-15 02:09 xm
目录 0 2006-10-15 01:34 xm
目录 0 2006-10-15 01:34 xm
目录 0 2006-10-15 01:42 xm
目录 0 2006-10-15 01:34 xm
文件 842 2006-10-15 02:09 xm
文件 24576 2006-10-15 02:22 xm
文件 180 2006-10-15 02:09 xm
文件 26112 2006-10-15 02:22 xm
文件 180 2006-10-15 01:38 xm
文件 310 2006-10-15 02:22 xm
文件 480 2006-10-15 01:34 xm
目录 0 2006-10-15 01:34 xm
文件 1274 2006-10-15 01:34 xm
文件 2853 2006-10-15 01:34 xm
文件 5612 2006-10-15 01:34 xm
文件 1096 2006-10-15 01:34 xm
文件 249 2006-10-15 01:34 xm
文件 3278 2006-10-15 05:18 xm
目录 0 2006-10-15 01:34 xm
相关资源
-
notepad++包含xm
l tools等插件 -
Volley获取json和xm
l数据解析显示 -
李刚疯狂xm
l讲义第2版完整源码 -
maven settings.xm
l 直接使用 - Unity3D 实战视频教程 保卫萝卜 2D 游戏
-
Notepad++的xm
l格式化工具xm ltools_2 -
Notepad++的xm
l Tools插件格式化xm l文 -
map/list集合转化成xm
l字符串 xm l字 -
libxm
l2-2.9.4-rc2.tar.gz - antisamy策略文件
- 在线教学系统微信小程序
-
Tinyxm
l库文件 -
优秀xm
l程序设计(学生信息管理) - protobuf-2.4.1.zip
-
svnmaven xm
l Schema等程序员必备.7z -
xm
l基础教程-耿祥义 清华出版社 -
xm
l基础教程 第二版 PDF -
一个xm
l项目源代码 - 订单管理系统SSH框架
-
xm
l基础教程与实验指导课件PPT+源代 -
xm
l基础教程第2版教学课件 -
xm
lbeans-2.6.0 - OgreCommandLineTools_1.7.2.zip
-
VS之xm
l文件操作 -
xm
l大作业+平时实验 -
xm
l转换CSV -
convert_cascade 转换xm
l文件 含dll文件 - w3school中文整站 “完美版!” 已更新
- ISO IEC 23001-7-2016 Information technology
-
xm
l及相关技术、xm l架构
评论
共有 条评论