C# 数据库存储的简单加密/解密

C# 数据库存储的简单加密/解密,c#,database,encryption,C#,Database,Encryption,我一直在寻找一个简单的加密/解密类,用于在数据库中存储信息。问题是我有一半的时间都不知道我在看什么,所以我真的不知道我发现的东西是否真的值得为我需要的东西实施,不管它是过于复杂还是太容易破解 我已经为此绞尽脑汁了一段时间,我的第一个想法是为ACII值生成一个简单的“开关、加法、乘法”键,但我认为在看到加密类的实际情况后,这并不值得 本质上,我正在寻找一个密钥,它加密存储中的任何和所有数据(包括表和列名),并在提取时解密。但是就像我说的,不需要太复杂,但是如果有人真的想访问数据,他们必须自己去争取

我一直在寻找一个简单的加密/解密类,用于在数据库中存储信息。问题是我有一半的时间都不知道我在看什么,所以我真的不知道我发现的东西是否真的值得为我需要的东西实施,不管它是过于复杂还是太容易破解

我已经为此绞尽脑汁了一段时间,我的第一个想法是为ACII值生成一个简单的“开关、加法、乘法”键,但我认为在看到加密类的实际情况后,这并不值得

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

有人能为我寻找的东西推荐一个好的链接/提供一个简单的类吗?这可能是我以前发现过的东西,但就像我说的,有一半时间我根本不知道我在看什么

提前谢谢

先发制人编辑我知道一些数据库有自己的加密/解密方法,但我认为这是实现它的最简单方法,因为我将使用多个不同的数据库程序。

AES 256是一种非常安全的加密算法(尽管可能有些过分)。Microsoft在System.Security.Cryptography中提供了一个实现,上的示例是一个很好的入门平台

我用它来加密数据库,效果很好

既然你说你是加密新手,我就试着谈谈加密对你有什么用,没有什么用。加密将普通数据(即(“我的私有字符串”)转换为随机数据(一组字节),只有知道私钥(在AES 256中)才可以恢复。数据,因为它在单元格之间是不同的,并且可能的私有/重要信息是加密的好方法


您的数据库模式是恒定的,因此加密在这里只起到最小的作用。调用表“Names”和“a”以及“oiaeoriuojdklfjsad”(最后一个示例是“加密”)之间的差别很小。这就是“模糊化安全”的含义。你可能会争辩说,选择一个随机的名字比一个描述性的名字稍微安全一点,但当你试图使用它时,它真的会让你感到困惑,而黑客想要的真正的“黄金”无论如何都是数据。如果遇到一个好的加密算法,知道它是什么类型的数据实际上没有帮助。

“加密任何和所有数据(包括表和列名)”-为什么要加密表和列名?同意,这最多是通过obfuscation@Caleb我知道这真的没有必要,但关键是阻止任何数据篡改。我相信,如果有人进入数据库看到垃圾,他们甚至不会费心弄清楚什么是垃圾。然而,如果他们看到表名等,他们就有一些事情要处理。@Ben,只是出于好奇,你认为他们需要处理什么?如果你需要这些数据,如果没有私钥,他们是不会从中得到任何东西的。加密表/列名不会改变这一点。这只是预防措施。正如我之前所说,我对加密真的不太了解,所以如果你认为没有必要,我会相信你。我想我主要关心的是,如果有人访问了数据库本身,他们将能够更改表中的数据。但在解释之后,它确实看起来比它的价值更大