SQL Server中的加密簡介
在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都需要在程序中完成。這導致一個問題,資料庫中加密的數據僅僅是對某一特定程序有意義,而另外的程序如果沒有對應的解密演算法,則數據變得毫無意義。
到了SQL Server2005,引入了列級加密。使得加密可以對特定列執行,這個過程涉及4對加密和解密的內置函數
SQL Server 2008時代,則引入的了透明數據加密(TDE),所謂的透明數據加密,就是加密在資料庫中進行,但從程序的角度來看就好像沒有加密一樣,和列級加密不同的是,TDE加密的級別是整個資料庫。使用TDE加密的資料庫文件或備份在另一個沒有證書的實例上是不能附加或恢復的。
Ⅱ SQL資料庫被加密了怎麼辦
用」合力天下資料庫加密軟體「加密的sqL資料庫在本機是可以正常運行的,遠程非法下載或傳到網上是打不開的,如果需要帶出公司,可以找公司管理員解密後帶出
Ⅲ SQL數據文件怎麼加密
首先要說明不能限制 「誰」,只能限制部分人
其次是加密數據肯定要降低效率
一般情況你數據表中數據不用全部加密,某些關鍵欄位加密就行了
但是你這個只能用可逆轉加密,而且加密後 查詢檢索會麻煩些
不能直接復制,使用 Blob 欄位就類型就行了
要加密簡單點用 Base64編碼好了,也不能直接復制,肉眼看不出來,拿走也不能直接用
其它的加密方式 效果好些,但效率就低了。
Ⅳ sql server中怎麼給資料庫表中的用戶密碼加密
1、首先我們電腦上要安裝有SQL Server,然後要准備一個MDF資料庫文件。打開SQL Server。
Ⅳ 怎麼實現對SQL Server資料庫的欄位進行加密和解密
怎麼實現對SQL Server資料庫的欄位進行加密和解密
那你可以通過編程 在保存的時候,先把欄位內容進得加密,然後再保存到資料庫中。 讀取的時候,讀出數據後,再進行解密操作。
Ⅵ 如何在SQL Server資料庫中加密數據
熱心網友
在SQl2005下自帶的函數hashbytes()
,此函數是微軟在SQL
SERVER
2005中提供的,可以用來計算一個字元串的
MD5
和
SHA1
值,使用方法如下:
--獲取123456的MD5加密串
select
hashbytes('MD5',
'123456')
;
--獲取123456的SHA1加密串
select
hashbytes('SHA1',
'123456')
;有了這個函數可以在sqlserver中為字元串進行加密,但是hashbytes()
函數的返回結果是
varbinary類型,(以
0x
開頭
16
進制形式的二進制數據)通常情況下,我們需要的都是字元串型的數據,很多人首先想到的可能就是用
CAST
或
Convert
函數將varbinary
轉換為
varchar,但這樣轉換後的結果會是亂碼,正確轉換
varbinary
可變長度二進制型數據到
16
進制字元串應該使用系統內置函數
sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select
sys.fn_varbintohexstr(hashbytes('MD5',
'123456'))
然後就可以截取需要的部分select
lower(right(sys.fn_varbintohexstr(hashbytes('MD5','123456')),32))為md5加密串。
Ⅶ 教你如何在SQL Server資料庫中加密數據
為了防止某些別有用心的人從外部訪問資料庫 盜取資料庫中的用戶姓名 密碼 信用卡號等其他重要信息 在我們創建資料庫驅動的解決方案時 我們首先需要考慮的的第一條設計決策就是如何加密存儲數據 以此來保證它的安全 免受被他人窺測
SQL Server中有哪一種支持可以用於加密對象和數據?從一開始就討論一下SQL Server欠缺什麼是明智的 或者是對於SQL Server中的加密部分你不應該做什麼
首先 SQL Server有兩個內置的密碼函數——即 pwdencrypt() 和 pwdpare() 同時 還有兩個SQL Server用來管理密碼哈希的沒有正式記錄的函數:pwdencrypt() 將密碼哈希過後進行存儲; pwdpare()將提供的字元串與哈希後的字元串進行比較 不幸的是 這個哈希函數不是非常安全 它可以通過字典攻擊演算法被破解(類似命令行應用程序!)
這些函數隨著SQL Server的版本發展而不斷進行修改 這也是另一個沒有使用它們的原因 早期版本的SQL Server對密碼進行的哈希 在後來的版本中無法解密 所以如果你依賴一個版本中的函數 那麼當升級的時候 所有你的加密數據就都沒有用了 除非你可以首先對其解密——這也就違背了敏液加密的最初的目的
第二 你可能會嘗試去創建一個針對你的資料庫的自製的加密解決方案 但是有以下三個理由說明你不要這樣做:
除非你是加密專家 否則胡亂編寫的加密系統只會提供非常低級的價值不高的保護 新鮮的是 單向密碼哈希或者 ROTx 形式的加密幾乎不需要費事就可以被輕松打敗
如果由於你自己的能力的缺乏而導致加密被破解 那麼你的數據就完蛋了 你需要將所有的東西進行沒有加密的備份 是嗎?(即使你加密了 那裡有沒有安全漏洞?)
當市面上提供有專業級別的 具有工業強度的加密解決方案的時候 你就不值得花費時間去自己做 把你的時間用於構建一個好的 堅固的資料庫 而不是再重新發明一次車輪
那麼 什麼才是好的加密數據的方式呢?
對於新手 微軟提供了一個自己生成的加密解敗伏決方案 CryptoAPI 對於輕量級的加密 軍用級別的安全就不在考慮范圍之內 它具有相對容易實現的優勢:管理員可以安裝一個名為CAPI 的ActiveX 控制 它可以在T SQL存儲過程中提供CryptoAPI 功能 CAPI 支持察拿攜各種類型的雙向加密和單向哈希演算法 所以管理員可以挑選最適合應用程序的問題的部分
如果你對使用微軟的解決方案不感興趣 還有一些很好的第三方的方案可以使用 一家名為ActiveCrypt 的軟體有限責任公司製造了XP_CRYPT 它是SQL Server的插件 可以在視圖 程序和觸發器中通過擴展存儲過程和用戶自定義函數(在SQL Server 中)來完成加密 你可以下載一個支持無線的MD DES 以及SHA 哈希的免費版本的應用程序; 其他的加密模型就是在比特深度上進行的 (完全版本是無限的 )在你自己的代碼中 你可以使用XP_CRYPT 與ActiveX 控制一樣(在受限的免費版本中) 對於ASP程序員來說 一個名為AspEncrypt 的組件提供了一種將高級加密整合到你的代碼中的簡單方式
lishixin/Article/program/SQLServer/201311/22397
Ⅷ sql 資料庫與客戶端的數據傳輸怎麼加密
1、需要看的那種加密會需要在客戶端獨立設置解密才行,這樣加大了編程工作量,數據在傳輸過程中。
2、高級版本的sqlserver已經加密,特別是帳號密碼不是明文傳輸。
3、加解密過程首先是CPU高開銷操作,過度頻繁一定會帶來性能問題
4、SQL Server 支持安全套接字層 (SSL),並且與 Internet 協議安全 (IPSec) 兼容。所以,sql server是支持在傳輸數據時進行加密的。