我正在为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
问题不在于阅读文本文件,我只是不确定如何使其安全。我正在考虑首先解析整个文件以将其从“加密”转换为文本,然后将其保存为临时文件,我将其传递给上面的代码,然后立即删除该文件。对于'加密'(这是正确的词?)文件,我可以使用我将在文件开头保存的密钥对每个字符进行位移。
我更感兴趣的是安全地保存文件,然后担心可能会有多大的过度杀戮。我猜这更像是练习。
答案 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。