我正在设计一个表格,该表格将用于存储将向客户收费的信息。
问题是数据库可能在客户服务器上。
我当时正在考虑添加一个包含第一个哈希表的第二个表,以便使用数据库的软件可以更新数据库和哈希表,但是客户无法(在我们不知道的情况下)编辑包含计费信息的表(在他们无法生成正确哈希值的依据)。
这是阻止客户篡改其有权使用的桌子的好方法吗?
如何创建表中所有数据的哈希(可能不止一个表)?
具体来说,我需要对表中的数据进行哈希处理,而不是对诸如数据集之类的对象进行哈希处理(即,如果我们更改组件,我不希望所有哈希值都发生变化)。
我当时正在考虑将数据写入文本文件并创建文件的哈希,但这会非常缓慢,因为该表可能包含多达500,000条记录,并且每次更新都需要生成哈希!
可以在delphi或c#中实现。
最佳答案
为什么不仅仅基于每个记录而不是每个表进行散列呢?
您可以将某些字段连接在一起,填充64个字符(使用特定字符或字符串),然后限制为64个字符并计算哈希-将其写入另一个表:
recordid tableid hash
已完成的工作-易于计算,易于检查。
另外,如果他们只是浏览您的可执行文件,则很难找到随机的字符串(假设此处为delphi)
关于c# - 防篡改 table ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2357897/