DB2中的数据值加密
2007-05-20 16:16:41 来源:WEB开发网【导读】本文描述如何使用 IBM DB2 Universal Database Version (Unix & Windows) 中提供的新函数轻松地将数据加密集成到数据库应用程序中。
多年来,数据库已经能够阻止未经授权的人看到其中的数据,这通常是通过数据库管理器中的特权和权限来实现的。在当前的环境下,对存储数据的保密的需求日益增长。这意味着即使 DBA 对表中的数据有完全的访问权限,但是表中可能还有数据拥有者不希望任何其他人看到的某些信息。特别是对于基于 Web 的应用程序,这一问题就更加明显了,在这种应用程序中,用户输入的数据(比如信用卡号)需要保存起来,以备同一用户以后使用该应用程序。同时,用户拥有者希望能够确保任何其他人不能访问这种数据。为了实现这种功能,DB2 内置了一些 SQL 函数,这些函数允许应用程序加密和解密数据。当将数据插入到数据库中时,可以使用用户提供的加密密码对其加密。当检索该数据的时候,必须提供相同的密码才能解密数据。对于要多次使用同一个密码的情况,可以使用一个赋值语句设置 ENCRYPTION PASSWORD 值,并令其在某次连接期间内有效。
本文将描述这些 SQL 函数,并给出一些关于如何使用这些加密函数的例子。我们还将讨论在关系数据库中使用加密数据的设计和性能相关事项。
实现
下面显示了这些新的 SQL 函数的签名。在 DB2 文档的 SQL Reference 部分中有更详细的文档。(为了确保对加密的数据使用正确的数据类型和长度,请务必阅读 SQL Reference 中 ENCRYPT 函数下的“Table Column Definition”部分。)
Encrypt (StringDataToEncrypt, PasswordOrPhrase, PasswordHint)
Decrypt_Char(EncryptedData, PasswordOrPhrase)
更多精彩
赞助商链接