SQL2008r2 怎么根据表内重复得值生成对应重复得密文

表tabe1

mdn

12345

13456

14567

12345

怎么根据mdn列内容生成16进制密文,16位或32位都可以

生成得两个12345密文是一样的

解密得时候怎么来解密

select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',mdn)),3,32) from table1

系统有自带的加密函数,直接用就行,把mdn加密成32位的字符串,但是这种是单向的,加密之后不能解密

如果加密之后,还必须要可以解密还原的话,可以用这两个系统函数
EncryptByPassPhrase 加密
DecryptByPassPhrase 解密

用法也简单
EncryptByPassPhrase(自己想一个秘钥字符串,要加密的字符串)
EncryptByPassPhrase('bilibili','abcdef')
DecryptByPassphrase(加密时用的秘钥字符串,要解密的字符串)
EncryptByPassPhrase('bilibili',上一步生成的那个字符串)

中文官方文档里面有各种加密函数解密函数的解释,也可以看看
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/encryptbypassphrase-transact-sql?view=sql-server-2017

建议你根据sql的特性去解决,不能给你详细的代码了,https://ask.csdn.net/questions/766185 这里我的回答采纳了,给你完整的sql