.NET 中XML 文件加密后 密钥的保存问题

目前在一个WinForm 程序中 使用 xml数据,但是要对XML文件进行加密后使用。在使用xml数据时,再在程序中解密后使用。
目前我已经实现了加密,并且在当前密钥存在的话也可以进行解密。但是事实上加密和解密是两个分开的步骤,不可能刚加完密,就立刻解密。那么就牵扯到了,密钥怎样保留的问题,保留然后再在解密时使用。
None.gif RijndaelManaged key  =   null ;
None.gif            
try
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                
// Create a new Rijndael key.
InBlock.gif
                key = new RijndaelManaged();
InBlock.gif                System.IO.StreamWriter sw 
= new StreamWriter(@"E:\key.txt");
InBlock.gif                
string text = System.Text.Encoding.Default.GetString(key.Key);
InBlock.gif                sw.Write(text);
InBlock.gif                
// Load an XML document.
InBlock.gif
                XmlDocument xmlDoc = new XmlDocument();
InBlock.gif                xmlDoc.PreserveWhitespace 
= true;
InBlock.gif                xmlDoc.Load(fileName);
InBlock.gif
InBlock.gif                
// Encrypt the element.
InBlock.gif
                for (int i = 0; i < ElementList.Length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    EncryptDC(xmlDoc, ElementList[i], key);
ExpandedSubBlockEnd.gif                }

InBlock.gif                xmlDoc.Save(enFileName);
InBlock.gif                DecryptDC(enFileName, deFile, key);
ExpandedBlockEnd.gif            }

None.gif            
catch  (Exception e)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                MessageBox.Show(e.Message);
ExpandedBlockEnd.gif            }

None.gif            
finally
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                
// Clear the key.
InBlock.gif
                if (key != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    key.Clear();
ExpandedSubBlockEnd.gif                }

ExpandedBlockEnd.gif            }
注意:以上保存密钥的代码是错误,在此段代码中加密和解密是在一起的,但是在实际应用中,是两个分开的过程。此处就不清楚密钥怎样保留,到解密时使用?请高手指点!

转载于:https://www.cnblogs.com/canny/archive/2007/07/31/838164.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值