gpt4 book ai didi

sql-server - SQL Server 截断加密值

转载 作者:行者123 更新时间:2023-12-02 21:03:09 26 4
gpt4 key购买 nike

我在 SQL Server 截断加密值时遇到问题。这看起来很奇怪,因为它加密的字符串长度一点也不长。

如果我在查询窗口中执行以下 SQL:

OPEN SYMMETRIC KEY MySymmetricKey DECRYPTION BY CERTIFICATE MyCertificate; 

SELECT
CONVERT(nvarchar, DecryptByKey(
ENCRYPTBYKEY(KEY_GUID('MySymmetricKey'), convert(varbinary(8000), cast('hellothisisastringwhichisntverylong' AS nvarchar(max))))
))

输出是:“hellothisisastringwhichisntver”

我查看了很多示例,但我看不出我做错了什么?

我还应该指出,我尝试过不使用 nvarchar(max) 和 varbinary(8000) 的变体,它们不会改变结果。

干杯!

最佳答案

您的 CONVERT 语句未指定要使用的 NVARCHAR 长度,因此它使用默认的 NVARCHAR(30)

https://technet.microsoft.com/en-us/library/ms187928(v=sql.100).aspx

试试这个(或者你想要的任何其他长度):

OPEN SYMMETRIC KEY MySymmetricKey DECRYPTION BY CERTIFICATE MyCertificate; 

SELECT
CONVERT(nvarchar(100), DecryptByKey(
ENCRYPTBYKEY(KEY_GUID('MySymmetricKey'), convert(varbinary(8000), cast('hellothisisastringwhichisntverylong' AS nvarchar(max))))
))

关于sql-server - SQL Server 截断加密值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37329666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com