2014-03-06 38 views
1

我一直在寻找一个简单的加密/解密类来存储数据库中的信息。麻烦的是,我一半都不知道自己在看什么,所以我真的不知道我发现的东西是否真的值得实施,无论是过于复杂还是太容易破解。简单加密/解密数据库存储

我的脑子里对此有点头痛,我的第一个思路是导致ACII值的一个简单的“开关,加法,乘法”键,但是我认为在看到什么后不会真的值得加密类实际上是。

本质上,我正在寻找一个密钥,用于加密存储上的任何和所有数据(包括表和列名称),并在提取时解密。但就像我说的那样,并不需要太复杂,但是如果有人想要访问数据,他们必须赚取哈哈。

任何人都可以提出一个好的链接/提供一个简单的类为我正在寻找?这可能是我之前找到的东西,但就像我说过的,我没有半点时间看到的东西是最弱的

在此先感谢!我知道一些数据库有自己的加密/解密方法,但我认为这是实现它的最简单的方法,因为我将工作将多个不同的数据库程序。

+1

“加密任何和所有数据(包括表和列名)” - 为什么要加密表和列名? – Caleb

+0

同意,最好这是通过模糊处理的安全 – BradleyDotNET

+0

@Caleb我知道这确实没有必要,但重点是阻止任何数据篡改。我相信如果有人进入数据库并看到垃圾,他们甚至都不会去找出什么是垃圾。但是,如果他们看到表名等,他们有一些工作。 – Ben

回答

2

AES 256是(虽然可能矫枉过正)一种非常安全的加密算法。 Microsoft在System.Security.Cryptography中提供了一个实现,MSDN中的示例是一个开始的好地方。

我用这个数据库加密,它工作得很好。

既然你说你是加密的新手,我会尝试着解一下加密是做什么的,而不是为你做的。加密需要正常的数据(即。(“我的私人字符串”)),并将其转换为随机数据(字节串),只有通过知道私钥(AES256)才可逆。数据,因为它在单元之间是不同的,并且可能私密/重要的信息是加密的好东西。

您的数据库模式是不变的,所以加密在这里只是微乎其微的。调用表“名称”和“A”和“oiaeoriuojdklfjsad”(最后一个例子是“加密”)之间的区别很小。这就是“混淆安全”的含义。你可以争辩说,选择一个随机名字比描述性的名字更安全一些,但是当你尝试使用它时,它确实会让你感到困惑,而黑客真正想要的“黄金”就是数据。知道它是什么类型的数据对于一个好的加密算法来说并不是真的有帮助。

+0

我想我主要关心的是,如果某人有权访问数据库本身,他们将能够更改表中的数据。但在解释之后,它确实看起来比它的价值更努力 – Ben