那你可以通過(guò)編程
成都創(chuàng)新互聯(lián)專(zhuān)注于察哈爾右翼后網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供察哈爾右翼后營(yíng)銷(xiāo)型網(wǎng)站建設(shè),察哈爾右翼后網(wǎng)站制作、察哈爾右翼后網(wǎng)頁(yè)設(shè)計(jì)、察哈爾右翼后網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造察哈爾右翼后網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供察哈爾右翼后網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
在保存的時(shí)候,先把字段內(nèi)容進(jìn)得加密,然后再保存到數(shù)據(jù)庫(kù)中。
讀取的時(shí)候,讀出數(shù)據(jù)后,再進(jìn)行解密操作。
比較簡(jiǎn)單的做法是數(shù)據(jù)在存入數(shù)據(jù)庫(kù)之前用c#進(jìn)行加密,然后再存入數(shù)據(jù)庫(kù),讀取數(shù)據(jù)之后,用相應(yīng)的解密方法對(duì)數(shù)據(jù)進(jìn)行解密。
但是,如果你一定要在存儲(chǔ)過(guò)程中加密的話(huà),可以使用c#創(chuàng)建好對(duì)應(yīng)的加密解密方法,然后生成一個(gè)加解密的類(lèi)庫(kù)dll,在sqlserver中引入該dll中的加密方法進(jìn)行加密(Sqlserver調(diào)用dll的方法sqlserver調(diào)用dll),程序中可以直接調(diào)用該dll中的解密方法,也可以把解密方法直接寫(xiě)在程序中。
在SQl2005下自帶的函數(shù)hashbytes() ,此函數(shù)是微軟在SQL SERVER 2005中提供的,可以用來(lái)計(jì)算一個(gè)字符串的 MD5 和 SHA1 值,使用方法如下:
--獲取123456的MD5加密串
select hashbytes('MD5', '123456') ;
--獲取123456的SHA1加密串
select hashbytes('SHA1', '123456') ;有了這個(gè)函數(shù)可以在sqlserver中為字符串進(jìn)行加密,但是hashbytes() 函數(shù)的返回結(jié)果是 varbinary類(lèi)型,(以 0x 開(kāi)頭 16 進(jìn)制形式的二進(jìn)制數(shù)據(jù))通常情況下,我們需要的都是字符串型的數(shù)據(jù),很多人首先想到的可能就是用 CAST 或 Convert 函數(shù)將varbinary 轉(zhuǎn)換為 varchar,但這樣轉(zhuǎn)換后的結(jié)果會(huì)是亂碼,正確轉(zhuǎn)換 varbinary 可變長(zhǎng)度二進(jìn)制型數(shù)據(jù)到 16 進(jìn)制字符串應(yīng)該使用系統(tǒng)內(nèi)置函數(shù) sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select sys.fn_varbintohexstr(hashbytes('MD5', '123456'))
然后就可以截取需要的部分select lower(right(sys.fn_varbintohexstr(hashbytes('MD5','123456')),32))為md5加密串。