MS SQL DES数据加密 解密,急求各位大虾帮帮小弟!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MS SQL DES数据加密 解密,急求各位大虾帮帮小弟!相关的知识,希望对你有一定的参考价值。
我对SQL 2005数据库中的某些字段加密并将加必的密文放在"miwen",但我对其进行解密,将解密结果放在列"mingwen",待代码成功执行完毕之后,做SELECT查询,发现,"mingwen" 里面的居然是空的,小弟试了N多方法,均不得其法,求各位大虾帮小弟,小弟不胜感激!!!!
代码如下:
CREATE SYMMETRIC KEY key1 WITH ALGORITHM=DES ENCRYPTION BY PASSWORD='123456'GOOPEN SYMMETRIC KEY key1 DECRYPTION BY PASSWORD='123456' update table1 set miwen=CAST(DECRYPTBYKEY(mingwen) AS varchar(1000))
CLOSE SYMMETRIC KEY key1GODROP SYMMETRIC KEY key1GO
其中miwen字段类型为二进制,mingeen字段类型为varchar(8000)
前些天已答过,实测是有效的,你试过吗?
(SQL2008下通过测试)
注意,VARBINARY定义时的长度,下面是以max最长来的,如果你的数据库VARBINARY定义不同,请相应的改一下。另外,请看懂下面每一句的意义后再去做。
学编程不能靠抄哦,呵呵。
--CREATE SYMMETRIC KEY key1 WITH ALGORITHM=DES ENCRYPTION BY PASSWORD=\'123456\'
OPEN SYMMETRIC KEY key1
DECRYPTION BY PASSWORD=\'123456\' --必须与原设定口令一样
DECLARE @str NVARCHAR(100),@Encrypted VARBINARY(MAX),@DEEncrypted varchar(8000)
SET @str=N\'AABBCC\' --要加密的字符串
SELECT @Encrypted=ENCRYPTBYKEY(KEY_GUID(\'key1\'),@str)
SELECT @DEEncrypted=CAST(DECRYPTBYKEY(@Encrypted) AS NVARCHAR(100))
SELECT \'加密\'=@Encrypted ,\'解密\'=@DEEncrypted --显示加密与解密结果
UPDATE [_TABLE1] SET mingwen = @Encrypted,mingeen = @DEEncrypted
CLOSE SYMMETRIC KEY key1
--删除对称密钥
--DROP SYMMETRIC KEY key1 参考技术A update 表 set reamrk=‘true’ where order number in (slelect top1 order number from 表 where
order number not in (select DISTINCT order number from 表))
解释哈:(1)select DISTINCT order number from 表 首先找到order number不相同的记录
(2)slelect top1 order number from 表 where order number not in (select DISTINCT order number from 表)) 用一个not in 取反,就取到相同的order number 记录,然后在根据 top1 查询出相同order number 记录中的第一条。
(3)最后根据相同order number 记录中的第一条 修改 reamrk=true。
以上是关于MS SQL DES数据加密 解密,急求各位大虾帮帮小弟!的主要内容,如果未能解决你的问题,请参考以下文章