如何在VB.NET中本地安全地保存用户配置文件数据?

时间:2010-03-29 20:27:23

标签: vb.net security

我正在为Calculus类创建一个VB.NET应用程序作为一个小小的项目。它需要本地保存在程序主文件中的用户配置文件。我现在使用2个单独的类来访问用户配置文件。

第一个类名为 Config ,它用于处理包含课程文档路径,设置和用户配置文件名称的基本配置文件。

第二个类名为 User ,它用于从配置文件目录中加载用户配置文件,其中用户数据保存在单独的文本文件中。

Config 类检索用户名和用户配置文件文本路径。然后将此文本文件路径传递给User对象,然后可以加载并解释该文件。

很抱歉,如果这是一个过于丰富的信息,但我认为这有助于解释事情。

我的问题是我应该如何格式化配置文件和用户文件,以便它们足够安全,以至于有人无法轻松检索或操作数据?

以下是我如何阅读文本文件的示例:

Dim userList() As String = {Nothing}
If My.Computer.FileSystem.FileExists(configPath + "config.cfg") Then
    Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(configPath + "config.cfg")
        MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
        MyReader.Delimiters = New String() {"="}
        Dim currentRow As String()
            'Loop through all of the fields in the file.' 
            'If any lines are corrupt, report an error and continue parsing.' 
        While Not MyReader.EndOfData
            Try
                currentRow = MyReader.ReadFields()
                    'interpret data tokens delimited by "=" and new line character here'
            Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
                MsgBox("Line " & ex.Message & " is invalid.  Skipping")
            End Try
        End While
    End Using
End If

问题不在于阅读文本文件,我只是不确定如何使其安全。我正在考虑首先解析整个文件以将其从“加密”转换为文本,然后将其保存为临时文件,我将其传递给上面的代码,然后立即删除该文件。对于'加密'(这是正确的词?)文件,我可以使用我将在文件开头保存的密钥对每个字符进行位移。

我更感兴趣的是安全地保存文件,然后担心可能会有多大的过度杀戮。我猜这更像是练习。

2 个答案:

答案 0 :(得分:1)

有一个关于如何使用codeproject.com上的vb.net加密/解密文件的好例子 http://www.codeproject.com/KB/security/EncryptFile.aspx

答案 1 :(得分:1)

嗯...... .NET包含很多安全和加密类。 我将通过查看System.Security.Cryptography命名空间来开始搜索。

如果您需要帮助从那里的选项中实现特定方法,请告诉我们。

作为旁注,您应该能够从System.IO命名空间处理所有文件访问。尽量远离Microsoft.VisualBasic命名空间,因为很多东西都不再是最佳实践。

-edit:Typo。