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数据加密 解密,急求各位大虾帮帮小弟!的主要内容,如果未能解决你的问题,请参考以下文章

密码学部分 数据加密标准(DES)相关知识来回答,越详细约好

急求 MD5的加密解密算法,用C++实现的源代码 高分答谢

SQL CLR标量UDF中的DES解密不起作用

C# DES加密解密问题

java 实现 DES加密 解密算法

DES加密解密问题 java与C 通讯