高手教你ADO.NET加密数据

开发 后端
这里就ADO.NET加密和哈希代码、加密配置文件、保护内存中的字符串值都做出了详细的介绍,希望对大家有帮助。

我们知道互联网是不安全的,我们在传送数据的时候有可能被人攻击,这里就教大家ADO.NET加密数据。保护和管理 ADO.NET 应用程序中的敏感信息依赖于用于创建这些信息的基础产品和技术。ADO.NET 不直接提供用于保护或加密数据的服务。

ADO.NET加密和哈希代码

可从 ADO.NET 应用程序使用 .NET Framework System.Security.Cryptography 命名空间中的类,以防止未经授权的第三方读取或修改数据。某些类是非托管 Microsoft CryptoAPI 的包装,而其他一些类则是托管实现。加密服务 主题提供有关 .NET Framework 中的加密方法的概述,并说明如何实现加密以及如何执行特定加密任务。

与加密(允许对数据进行加密然后解密)不同,散列数据是一个单向过程。如果要通过检查数据是否已更改来避免数据被篡改,哈希数据非常有用:如果输入字符串相同,哈希算法总是生成相同的短输出值,可以很容易进行比较。使用哈希代码确保数据完整性说明如何生成和验证哈希值。

ADO.NET加密配置文件

保护应用程序时,最重要的目标之一是保护对数据源的访问。如果连接字符串未受保护,那么它就是一个潜在漏洞。配置文件中保存的连接字符串存储在标准 XML 文件(.NET Framework 已为其定义了一组常用元素)中。通过受保护的配置,您可以加密配置文件中的敏感信息。虽然受保护的配置主要是为 ASP.NET 应用程序设计的,但它也可以用于加密 Windows 应用程序中的配置文件部分。有关更多信息,请参见保护连接信息 (ADO.NET)。

保护内存中的字符串值

如果 String 对象包含敏感信息(如密码、信用卡号或个人数据),将存在信息使用完后可能被泄露的风险,因为应用程序无法从计算机内存中删除该数据。

String 不可变;其值在创建后无法修改。看起来要修改字符串值的更改实际上在内存中创建了 String 对象的一个新实例,以将该数据存储为纯文本。此外,无法预测何时将从内存中删除字符串实例。字符串的内存回收并不是根据 .NET 垃圾回收确定的。如果您的数据确实是敏感数据,则应避免使用 String 和 StringBuilder 类。

#T#SecureString 类提供了在内存中使用数据保护 API (DPAPI) 加密文本的方法。这样,就可以在不再需要字符串时将其从内存中删除。没有任何 ToString 方法可快速读取 SecureString 的内容。您可以不使用值或通过向其传递一个指向 Char 对象的数组的指针来初始化 SecureString 的新实例。这样,您就可以使用类的各种方法来处理字符串。有关更多信息,请下载 SecureString 示例应用程序,它演示如何从中使用 SecureString 类。

责任编辑:田树 来源: 博客
相关推荐

2009-11-12 11:38:03

ADO.NET连接事件

2009-11-12 16:39:02

ADO.NET实体数据

2009-11-13 17:01:07

ADO.NET事务处理

2009-11-13 14:29:13

ADO.NET Mer

2009-11-11 15:24:35

ADO创建数据库

2009-11-04 16:13:18

ADO.NET数据表

2009-12-28 15:11:36

ADO.NET专家

2009-12-25 14:23:35

ADO.NET设置

2009-11-04 11:40:38

ADO.NET Dat

2009-12-21 17:02:19

ADO.NET Sql

2009-11-12 10:06:01

ADO.NET读取数据

2009-11-11 15:09:35

ADO.NET数据集

2009-12-22 14:15:08

ADO.Net处理数据

2009-11-11 14:04:14

ADO.NET连接池

2009-11-03 14:22:10

ADO.NET Exc

2009-11-11 13:59:15

ADO.NET与ADO

2009-11-03 16:37:10

2011-05-20 11:31:07

ADO.NET

2009-09-14 13:37:25

LINQ ADO.NE

2009-12-22 10:27:01

ADO.NET数据
点赞
收藏

51CTO技术栈公众号