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






3.11/5 (9投票s)
这个库允许用户在 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 脚本。 此脚本将创建四个函数:EncryptTextNoPWD
、EncryptTextWPWD
、DecryptTextNoPwd
和 DecryptTextWPWD
。
- 构建库。
- 创建一个强名称的程序集。
- 移动文件,以便 SQL 可以看到 COM 对象。
- 生成类型库。
- 在 GAC 中注册程序集。
- 将函数安装到 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 的体验。