如何在数据库内进行密码加密和解密

qq_35445559 2016-10-05 10:05:27
各位大神帮帮忙!
我想将网站的用户账号和论坛的用户账号同步(网站和论坛的加密方式不同),我的思路是想在数据库里用触发器进行同步(其他方法我有想过,感觉都不合适),网站对网站对应用户表进行增改时,执行触发器里面的程序,对增改的用户相对应密码的密码进行密文转换(网站的不清楚是什么加密方式,但我有加密和解密的程序,论坛则是MD5),然后再增改论坛对应的用户表。请问各位大神这个触发器要怎么写?
...全文
1368 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35445559 2016-10-06
  • 打赏
  • 举报
回复
引用 2 楼 wmxcn2000 的回复:
如果要比较两个值,直接比较密文就可以了,不用解密出来;
你可以没看懂我的意思。 网站的账号是存在A数据库的用户表里面,论坛的账号是存在B数据库的用户表里面,两者的加密方法不一样。 我想做个触发器,当A数据库里面增改用户表里数据时,也对B数据库里的用户表进行增改,但是要将A数据库用户表里的密文转换成B数据库用户表的密文。
卖水果的net 2016-10-06
  • 打赏
  • 举报
回复
如果要比较两个值,直接比较密文就可以了,不用解密出来;
卖水果的net 2016-10-06
  • 打赏
  • 举报
回复
MD5 也有现成的加密算法,SQL 版的也可以搜索到。 只是这个 MD5 是非对称的加密,不能逆向解密;
道素 2016-10-06
  • 打赏
  • 举报
回复
作为参考,数据本身提供的字符串加密方法:

------------1.HASHbytes---------------
SELECT sys.fn_sqlvarbasetostr(HASHbytes('MD5','2324243')),sys.fn_VarBinToHexStr(HASHbytes('MD5','2324243'))

------------2. EncryptByPassPhrase 带公钥---------------
--公钥最好保存在其他地方

declare @pwd varbinary(max) ,@password nvarchar(1000) , @EncrptString nvarchar(max)
set @password ='1234567'

set @EncrptString= N'我是中国人'
--加密
SELECT @pwd = EncryptByPassPhrase( @password, @EncrptString)
select @pwd
--解密
SELECT @EncrptString =CAST( DecryptByPassPhrase(@password,@pwd) as nvarchar(max))
select @EncrptString

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧