谁可以给我说说有关xml加密的知识,网上找到的一个对XML加密代码,现在加入我的代码中,为什么我的代码运行时提示【privKeys.Load(Application.StartupPath + "\\xml.dev.keys.private");】找不到,这句是什么意思呀?特别是\\xml.dev.key.private能否跟我详细说一说。还有就是使用对称加密和非对称加密相结合的方法来加密xml,我在网上找到很久没有这方面便加让我理解的知识和代码!先谢谢各位了 public partial class frmConn : Form
{
//RSACryptoServiceProvider rsa; public frmConn()
{
InitializeComponent();
} private void frmConn_Load(object sender, EventArgs e)
{
// 创建一个用于解密密钥的非对称密钥
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
// 加载私有密钥
XmlDocument privKeys = new XmlDocument();
privKeys.Load(Application.StartupPath + "\\xml.dev.keys.private");
// 使用私有密钥来解密密钥
rsa.FromXmlString(privKeys.OuterXml); XmlDocument xmlEncDoc = new XmlDocument();
xmlEncDoc.Load("connString.xml"); EncryptedXml encXml = new EncryptedXml(xmlEncDoc);
encXml.AddKeyNameMapping("asyncKey", rsa); encXml.DecryptDocument();
xmlEncDoc.Save("connString.xml"); //读取连接接字符串的值
DAL.ConnConfig dbConn = new DAL.ConnConfig();
txtPosName.Text = dbConn.GetPosName();
txtServerAdd.Text = dbConn.GetdBAdd();
txtDBName.Text = dbConn.GetdBName();
txtUID.Text = dbConn.GetdBUID();
txtPWS.Text = dbConn.GetdBPWS();
} private void btnOK_Click(object sender, EventArgs e)
{
//保存连接接字符串的值
DAL.ConnConfig dbConn = new DAL.ConnConfig();
dbConn.SavePosName(txtPosName.Text.Trim());
dbConn.SavedBAdd(txtServerAdd.Text.Trim());
dbConn.SavedBName(txtDBName.Text.Trim());
dbConn.SavedBUID(txtUID.Text.Trim());
dbConn.SavedBPWS(txtPWS.Text.Trim());
MessageBox.Show("保存成功!"); //保存后进行文件加密操作
////check there is Xml to encrypt
//if (string.IsNullOrEmpty("connString.xml") == false)
//{
// try
// {
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
// 加载一个公开密钥
XmlDocument pubKeys = new XmlDocument();
pubKeys.Load(Application.StartupPath + "\\xml.dev.keys.public");
// 使用公开密钥加密密钥
rsa.FromXmlString(pubKeys.OuterXml); XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("connString.xml"); rsa = new RSACryptoServiceProvider(); XmlElement xmlElemt;
xmlElemt = xmlDoc.DocumentElement; EncryptedXml xmlEnc = new EncryptedXml(xmlDoc); xmlEnc.AddKeyNameMapping("asyncKey", rsa); EncryptedData encXml = xmlEnc.Encrypt(xmlElemt, "asyncKey"); EncryptedXml.ReplaceElement(xmlElemt, encXml, false); xmlDoc.Save("connString.xml"); // }
// catch (XmlException ex)
// {
// //likely the xml is not well formed
// throw ex;
// }
//} this.Close();
}
{
//RSACryptoServiceProvider rsa; public frmConn()
{
InitializeComponent();
} private void frmConn_Load(object sender, EventArgs e)
{
// 创建一个用于解密密钥的非对称密钥
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
// 加载私有密钥
XmlDocument privKeys = new XmlDocument();
privKeys.Load(Application.StartupPath + "\\xml.dev.keys.private");
// 使用私有密钥来解密密钥
rsa.FromXmlString(privKeys.OuterXml); XmlDocument xmlEncDoc = new XmlDocument();
xmlEncDoc.Load("connString.xml"); EncryptedXml encXml = new EncryptedXml(xmlEncDoc);
encXml.AddKeyNameMapping("asyncKey", rsa); encXml.DecryptDocument();
xmlEncDoc.Save("connString.xml"); //读取连接接字符串的值
DAL.ConnConfig dbConn = new DAL.ConnConfig();
txtPosName.Text = dbConn.GetPosName();
txtServerAdd.Text = dbConn.GetdBAdd();
txtDBName.Text = dbConn.GetdBName();
txtUID.Text = dbConn.GetdBUID();
txtPWS.Text = dbConn.GetdBPWS();
} private void btnOK_Click(object sender, EventArgs e)
{
//保存连接接字符串的值
DAL.ConnConfig dbConn = new DAL.ConnConfig();
dbConn.SavePosName(txtPosName.Text.Trim());
dbConn.SavedBAdd(txtServerAdd.Text.Trim());
dbConn.SavedBName(txtDBName.Text.Trim());
dbConn.SavedBUID(txtUID.Text.Trim());
dbConn.SavedBPWS(txtPWS.Text.Trim());
MessageBox.Show("保存成功!"); //保存后进行文件加密操作
////check there is Xml to encrypt
//if (string.IsNullOrEmpty("connString.xml") == false)
//{
// try
// {
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
// 加载一个公开密钥
XmlDocument pubKeys = new XmlDocument();
pubKeys.Load(Application.StartupPath + "\\xml.dev.keys.public");
// 使用公开密钥加密密钥
rsa.FromXmlString(pubKeys.OuterXml); XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("connString.xml"); rsa = new RSACryptoServiceProvider(); XmlElement xmlElemt;
xmlElemt = xmlDoc.DocumentElement; EncryptedXml xmlEnc = new EncryptedXml(xmlDoc); xmlEnc.AddKeyNameMapping("asyncKey", rsa); EncryptedData encXml = xmlEnc.Encrypt(xmlElemt, "asyncKey"); EncryptedXml.ReplaceElement(xmlElemt, encXml, false); xmlDoc.Save("connString.xml"); // }
// catch (XmlException ex)
// {
// //likely the xml is not well formed
// throw ex;
// }
//} this.Close();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货