SQL Server:将varchar转换为int并再次返回

时间:2015-06-18 04:18:05

标签: sql sql-server

我正在尝试返回字符串的数字表示,以便我可以解码并返回原始字符串。

即。将'test'转换为12345

然后能够获取12345并获得'test'

有意义吗?

2 个答案:

答案 0 :(得分:1)

您可以分别使用ENCRYPTBYPASSPHRASEDECRYPTBYPHASSPHRASE来加密和解密您的列。但是在加密和解密消息时必须使用相同的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