gpt4 book ai didi

c# - 什么是 "obfuscate"数值的简单但有些有效的方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:11:42 24 4
gpt4 key购买 nike

假设我有一个包含 2 列的 Access 数据库表:一列是 ID(从 1 到 20000,按顺序且每列都是唯一的),一列是值(从 0 到 500 的任何数字)。

如何以简单但有些有效的方式混淆值字段(使用 ID 或不使用 ID)?我希望有比 ROT13 混淆更有效的方法,但又不会复杂到解码需要不止一行代码的程度。解码是在 C# 代码中完成的。混淆是通过 Access 中的计算字段完成的。

我将“加密”更改为“混淆”以反射(reflect)目标的简单性,即不是为了防止“攻击”,而是为了避免不小心暴露数据。

最佳答案

对于 0 到 500 之间的数字,加密基本上是无用的。

首先,长度太短,无法使用异或等常规手段进行有效加密。一旦您知道一个值的值,您就可以重新创建 key 来解密其他值。当您处理大量原始数据时,加密效果最佳。

其次,如果数据对 Access 中的用户可用,加密算法也将可用,至少对确定的人而言。如果他们可以看到用于加密值的计算,他们可能可以创建自己的解密算法。

第三,由于只有 501 个可能的值,该值很容易受到字典攻击——即有人只是猜测每个值,他们平均只需猜测 250 次。这甚至比公文包上一个简单的 3 位数字锁还要少。因此,加密可能对您没有多大好处。

关于c# - 什么是 "obfuscate"数值的简单但有些有效的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com