我正在尝试返回字符串的数字表示,以便我可以解码并返回原始字符串。
即。将'test'转换为12345
然后能够获取12345并获得'test'
有意义吗?
答案 0 :(得分:1)
您可以分别使用ENCRYPTBYPASSPHRASE和DECRYPTBYPHASSPHRASE来加密和解密您的列。但是在加密和解密消息时必须使用相同的phassphrase。
DECLARE @TestString INT = 1234
DECLARE @Encrpted varbinary(8000)
SET @Encrpted = ENCRYPTBYPASSPHRASE('YourEncrptPhrase',CAST(@testString AS VARCHAR(100)))
SELECT @Encrpted AS EncrptedMessage,
CAST(DECRYPTBYPASSPHRASE('YourEncrptPhrase',@Encrpted) AS VARCHAR(100)) AS DecryptedMessage
如果您想拥有自己的通用名称,则需要为每个值创建代码名称或为每个整数分配字母(0-9)例如:A = 1,B = 2。然后你可以使用REPLACE函数用字母替换整数。但是你为什么要那样做?
答案 1 :(得分:0)
你想要这样的东西:
DECLARE @OriginalString VARCHAR(100)= 'test'
DECLARE @EncryptedString INT
SET @EncryptedString = REPLACE(@OriginalString,@OriginalString,12345)
DECLARE @DecryptedString VARCHAR(100)
SET @DecryptedString = REPLACE(@EncryptedString,@EncryptedString,@OriginalString)
SELECT 'DECRYPTED STRING: ' + @DecryptedString