65.9K
CodeProject 正在变化。 阅读更多。
Home

SQL 加密和解密库(使用 Rijndael)

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.11/5 (9投票s)

2006年8月23日

CPOL

2分钟阅读

viewsIcon

100920

downloadIcon

1620

这个库允许用户在 SQL Server 中使用函数来加密和解密文本。

引言

我需要一种能够在 SQL Server 中加密和解密文本的方法,并且希望有一种简单的方法来实现这一点。 我不懂 C++ 来构建扩展过程,因此使用我在其他项目中已经使用的一些代码,我找到了一种使用 .NET 库作为 COM 对象的方法,SQL 可以调用该对象,它会处理加密和解密。 加密算法是 Rijndael。 我使用它是因为它在大多数平台上更常见,并且它是新的政府标准 AES 加密方法。

以下是如何构建、安装和运行 ZIP 代码中包含的 SQL 脚本的说明。

安装说明

要将此 COM 对象与 SQL Server 2000 或 2005 一起使用,请使用 Visual Studio 2005 编译此项目,DLL 将位于 *bin\release* 文件夹中。

这个项目已经有一个强名称的密钥,但您可以将其替换为您自己的密钥。 通过构建项目,它已经具有强名称。 您可以删除此名称,但您有责任将其放置在它所属的位置,以便 COM 客户端可以找到它。

将 *EncryptDecrypt.dll* 文件复制到 SQL Server 的 *binn* 文件夹中。 通常是 *C:\Program Files\Microsoft SQL Server\MSSQL\Binn* 文件夹。

复制文件后,您需要注册组件以使其对 COM 客户端可见。 您可以使用 Regasm 实用程序来完成此操作。

Regasm /tlb:EncryptDecrypt binn\EncryptDecrypt.dll

为了让任何 COM 客户端看到 .NET 程序集,我们需要在全局程序集缓存中注册程序集。 使用 GACUTIL 实用程序在 GAC 中注册程序集。

GACUTIL /i binn\EncryptDecrypt.dll

在查询分析器中打开 *EncryptDecryptFunctions.sql*,选择您希望将函数安装到的数据库,然后执行 SQL 脚本。 此脚本将创建四个函数:EncryptTextNoPWDEncryptTextWPWDDecryptTextNoPwdDecryptTextWPWD

  1. 构建库。
  2. 创建一个强名称的程序集。
  3. 移动文件,以便 SQL 可以看到 COM 对象。
  4. 生成类型库。
  5. 在 GAC 中注册程序集。
  6. 将函数安装到 SQL Server。

以下是如何在 SQL 中使用这些函数的示例

select dbo.EncryptStringnoPWD('test')
Select dbo.DecryptStringNoPWD('NzevW30d2I9egnLSz+PDvw==')
select dbo.EncryptStringwPWD('test','froggy')
Select dbo.DecryptStringWPWD('eKO76BsvLSJMWK7kF6Mfpw==','froggy')
  • 使用内部密码加密文本
  • 使用内部密码解密加密的文本
  • 使用用户提供的密码 'froggy' 加密文本
  • 使用用户提供的密码 'froggy' 解密加密的文本

祝你好运,我希望这对某人有所帮助。 如果您发现此软件有用,请给我发送电子邮件,告诉我您在 goakes27@gmail.com 的体验。

© . All rights reserved.