日期:2014-05-18  浏览次数:20473 次

[求助]请教一个数据库列加密的问题
现在数据库中有一张表保存用户信息的,里面有一列是存放用户密码的,密码是以明文的形式存放。
现在我想基于这张表做一个视图,视图里包含密码这一列,让程序员通过读取这个视图来验证密码,可是这列不能以明文的形式表现出来,,该如何在视图里对这一列加密(数据库是2008)。
有没有这方面的例子,请大家帮帮忙,谢谢。

------解决方案--------------------
http://blog.csdn.net/maco_wang/article/details/6299275
------解决方案--------------------
1.不要在任何地方存放明文密码,csdn本身的教训就已经很深刻了
2.sql本身提供一种加密函数
SQL code

----sql短语加密
CREATE TABLE #SecretInfo(MySecret varbinary(max) NOT NULL)
GO
INSERT #SecretInfo (MySecret)
SELECT EncryptByPassPhrase('My Password Used To Encrypt This String in 2008.','我把公司的服务器数据库密码记在那个绿色的小本子上了。')

SELECT MySecret FROM #SecretInfo

/*通常的查询结果:0x01000000CCBC800C6B5CECE3F211FB975C2F8B681CC8301DDE74CF783C6A59316C2BAC08D568151FD573E2FDE01C800805C8D1D5984727DEE95040C1FB604003A3EFDD0444CE72D7E505D1A4*/ 
/************想知道原文本的内容,使用以下语句:--------3w@live.cn**********************/

SELECT CAST(DecryptByPassPhrase('My Password Used To Encrypt This String in 2008.',MySecret) as varchar(max))FROM #SecretInfo

------解决方案--------------------
探讨

1.不要在任何地方存放明文密码,csdn本身的教训就已经很深刻了
2.sql本身提供一种加密函数
SQL code

----sql短语加密
CREATE TABLE #SecretInfo(MySecret varbinary(max) NOT NULL)
GO
INSERT #SecretInfo (MySecret)
SELECT EncryptByPassPhrase('My Pa……

------解决方案--------------------
我博客里有各种对称加密和哈希加密的clr函数代码,直接去拷吧.