我的VB.NET应用程序有一个非常重要的布尔变量。我需要能够“保存在某个地方”并在将来阅读它(即使应用程序已关闭)。
目前,我将变量存储为某处的.bin文件。但是我担心用户可以简单地抓取文件并做一些魔术来编辑值。
我需要让用户的眼睛完全无法使用此值。 或者至少,无法编辑。隐藏这种价值的最佳方法是什么?
我设法将变量存储在我的在线MySQL数据库中。但说实话,这对我的目的来说效果不佳。我需要在本地存储...
有什么想法吗?
答案 0 :(得分:6)
理论上,你永远不能隐藏这个变量。但是,您可以更难找到或阅读。要知道如何隐藏变量,您必须首先了解一些常用的检索方法。
您无法完全保护您的应用程序。但是你可以使用上面的一些解决方案(或将它们结合起来)以获得更好的保护,使其变得更难。
当然,过早的安全是不好的。如果那个布尔值不是很重要,那么我认为一些简单的加密也可以。
修改1
我刚刚注意到您已经对自己的答案发表了评论,称该文件在将文件复制到另一台计算机并从那里读取后不应该是“有效”。
如果是这种情况,您可以使用一些基于密钥的加密,例如XOR加密,然后使用PC的MAC地址或主板序列号作为加密的密钥。
然后,在计算机上创建文件也需要读取文件。如果您对此感兴趣,请添加评论,我会给您一个代码示例。
答案 1 :(得分:2)
我会以非显而易见的方式将其存储在注册表中。例如,使注册表项的名称显得重要并存储随机数值,然后确保它以0或1结尾或包含嵌入数字中固定位置的0或1。
然后,您可以从注册表中读取值,并从适当的位置提取0或1。
答案 2 :(得分:1)
在存储之前加密值。使用.NET Cryptography Model。有关如何使用该模型实现某些内容的更多信息see