【发布时间】:2020-07-14 08:37:15
【问题描述】:
我想在 sql 中有一个函数来加密给定的varchar 值并将其作为varchar 返回,反之亦然。我已经检查了sql的以下功能,例如:
ENCRYPTBYPASSPHRASEENCRYPTBYKEYENCRYPTBYCERT
我还在这里查看了其他问题,但我无法找到(或可能理解)我正在寻找的解决方案。我想要做的是将加密的字符串作为查询字符串传递给一个 URL(我希望从 Db 执行此操作),它没有任何 /,这样它就不会与 URL 路由混淆。
第 1 步:我制作了随机字符串生成器。 (作品)
DECLARE @RandomString VARCHAR (500) = ( SELECT RandomString
FROM dbo.SfRandomStringGenerator (64, 1) );
示例字符串:
X922t1N2udpdi30HZN9W4U9N997UatHZMJKWvI4si0w9g9q6FA3Lqd8NxCJXAe5D
第 2 步:我想加密第 1 步中的字符串,以便输出也是字符串格式,但我遇到的所有加密方法都返回 VARBINARY,这不是我想要的。
Declare @EncryptedString Nvarchar(MAX)=dbo.SfEncrypt(@RandomString)
Select @EncryptedString
示例字符串:
WDkyMnQxTjJ1ZHBkaTMwSFpOOVc0VTlOOTk3VWF0SFpNSktXdkk0c2kwdzlnOXE2RkEzTHFkOE54Q0pYQWU1RA
第 3 步:我还希望能够解密加密的字符串。
Declare @DecryptedString Nvarchar(MAX)=dbo.SfDecrypt(@RandomString)
Select @DecryptedString
示例字符串:
X922t1N2udpdi30HZN9W4U9N997UatHZMJKWvI4si0w9g9q6FA3Lqd8NxCJXAe5D
到目前为止,我还没有得到我想要的加密。 任何有关解决方案的帮助或指示都会有所帮助。谢谢。
【问题讨论】:
-
文档看不懂,看不懂怎么办?到目前为止你做了什么,什么没用?
-
@Larnu ,对问题进行了更改。请检查。
-
请阅读this,了解一些改进问题的技巧。您似乎在问如何将
convert(或cast)VarBinary转换为VarChar。 -
@HABO 不。我不是在寻找演员或转换。但是感谢您提供改进链接。
标签: sql sql-server tsql encryption