用心快乐、用心成功

用心.NET

博客园 首页 新随笔 联系 订阅 管理
目前在一个WinForm 程序中 使用 xml数据,但是要对XML文件进行加密后使用。在使用xml数据时,再在程序中解密后使用。
目前我已经实现了加密,并且在当前密钥存在的话也可以进行解密。但是事实上加密和解密是两个分开的步骤,不可能刚加完密,就立刻解密。那么就牵扯到了,密钥怎样保留的问题,保留然后再在解密时使用。
RijndaelManaged key = null;
            
try
            
{
                
// Create a new Rijndael key.
                key = new RijndaelManaged();
                System.IO.StreamWriter sw 
= new StreamWriter(@"E:\key.txt");
                
string text = System.Text.Encoding.Default.GetString(key.Key);
                sw.Write(text);
                
// Load an XML document.
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.PreserveWhitespace 
= true;
                xmlDoc.Load(fileName);

                
// Encrypt the element.
                for (int i = 0; i < ElementList.Length; i++)
                
{
                    EncryptDC(xmlDoc, ElementList[i], key);
                }

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

            
catch (Exception e)
            
{
                MessageBox.Show(e.Message);
            }

            
finally
            
{
                
// Clear the key.
                if (key != null)
                
{
                    key.Clear();
                }

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

posted on 2007-07-31 22:25  用心(Canny)  阅读(984)  评论(3)    收藏  举报