c# - 可以在 MySQL 中使用 AES_DECRYPT() 解密的 ASP.NET 中的加密

标签 c# asp.net mysql encryption encryption-symmetric

我希望能够在 ASP.NET 中执行应用程序级加密,生成一个字节数组,然后将其保存到 MySQL blob 列中。然后我希望它成为一个选项,如果您有加密 key ,您将能够使用 MySQL 的 AES_DECRYPT() 对其进行解密。功能。这似乎应该是可能的,因为 AES_DECRYPT 是 AES/Rijndael 的一个实现。

MySQL AES_ENCRYPT/DECRYPT 函数只需要一个 key 和要加密/解密的字符串作为参数。然而,我在 ASP.NET/C# 中看到的加密示例还涉及为 Key 和 IV(初始化向量)指定值。这些如何影响最终的加密字节数组,以及在使用 AES_DECRYPT)_ 解密时如何考虑它们?

最佳答案

can do that通过将 RijndaelManaged 设置为使用 ECB mode .

但是,ECB 模式并不安全,应该避免。


一般来说,数据库是执行加密的非常糟糕的地方。

如果您能够对数据库中的数据进行加密,则意味着您同时拥有密文和 key ;这违背了加密的目的。

您应该使 key 尽可能远离密文存储;使用任何类型的 SQL 加密函数通常表明您的加密策略存在基本设计缺陷,这可能会造成灾难性后果。

关于c# - 可以在 MySQL 中使用 AES_DECRYPT() 解密的 ASP.NET 中的加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17283659/

相关文章:

.net - 序列化性能差的可能解决方案

c# - ASP.NET - 检查开发机器或服务器

mysql - WHERE 和 WHERE NOT 在同一查询 mysql 中

c# - 单元测试,具有许多数据库调用的项目

c# - 为什么 TcpListener 没有实现 IDisposable

c# - C#中本例中Get A Specific Column Value from a DataTable时如何解决cast not valid?

c# - 缓存类型和应用程序缓存

c# - Windows 自助服务终端应用程序

mysql - SQL 以独立于数据库的方式填充零(LPAD)

java - 在 JSP 中更新数据库