① 如何打開加密過的*db資料庫文件(知道密碼)
方法和詳細的操作步驟如下:
1、第一步,打開程序後,可以在程序左側看到「資料庫列表」,展開以查看打開的所有資料庫,見下圖,轉到下面的步驟。
② 系統數據安全
部分航空物探項目是帶有一定密級的,其項目所取得的成果資料屬於保密數據,這部分數據也存儲在本系統的資料庫中。因此,需防止保密數據被竊走或蓄意破壞,如越權提取資料庫保密數據或在通信線路上進行竊聽等。對這樣的威脅最有效的解決方法就是對數據進行加密處理,把可讀的保密數據轉化為密碼數據,以加密格式存儲和傳輸,在使用時再解密。
航空物探保密項目的密級分機密、秘密、絕密3個密級。本系統僅對保密項目數據進行加密處理,機密和秘密項目資料採用64位密鑰進行加密,絕密項目資料採用128位密鑰進行加密,非保密項目數據不做任何加密處理。進入資料採集庫中的數據通過正確性檢查後,歸檔入庫進入資料庫時,系統根據設置的項目密級進行自動加密。用戶也可以通過加密-解密功能對資料庫中的數據進行加密或解密。相同類型的加密數據與未加密數據均存儲在資料庫同一張表的同一欄位中,但在數據加密-解密記錄表資料庫(表3-8)中,記錄了加密資料庫表代碼和欄位代碼。當用戶獲得授權訪問保密數據時,系統根據該表中的記錄自動對數據進行解密。
表3-8 數據加密-解密記錄表資料庫結構
一、數據加密與解密
根據密鑰類型不同將現代密碼技術分為兩類:對稱加密演算法(秘密鑰匙加密)和非對稱加密演算法(公開密鑰加密)。對稱鑰匙加密系統是加密和解密均採用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。非對稱密鑰加密系統採用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。
對稱加密演算法用來對敏感數據等信息進行加密,常用的演算法包括:DES(Data En-cryption Standard),數據加密標准,速度較快,適用於加密大量數據的場合;3DES(Triple DES),是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高;AES(Advanced Encryption Standard),高級加密標准,速度快,安全級別高。常見的非對稱加密演算法有:RSA,由RSA公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件快的長度也是可變的;DSA(Digital Signature Algorithm),數字簽名演算法,是一種標準的DSS(數字簽名標准)。
本系統採用AES和DES加密演算法對資料庫數據進行加算或解密(圖3-4)。
圖3-4 資料庫數據加密-解密過程
AES加密演算法是美國國家標准和技術協會(NIST)2000年10月宣布通過從15種候選加密演算法中選出的一項新的密鑰加密標准,於2002年5月26日制定了新的高級加密標准(AES)規范。
AES演算法基於排列(對數據重新進行安排)和置換(將一個數據單元替換為另一個)運算,採用幾種不同的方法來執行排列和置換運算。它是一個迭代的、對稱密鑰分組的密碼,可以使用128、192和256位密鑰,並且用128位(16位元組)分組加密和解密,數據通過分組密碼返回的加密數據的位數與輸入數據相同。迭代加密使用一個循環結構,在該循環中重復置換和替換輸入數據。
DES演算法把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位。首先,DES把輸入的64位數據塊按位重新組合,並把輸出分為L0、R0兩部分,每部分各長32位,並進行前後置換(輸入的第58位換到第一位,第50位換到第2位,依此類推,最後一位是原來的第7位),最終由L0輸出左32位,R0輸出右32位。根據這個法則經過16次迭代運算後,得到L16、R16,將此作為輸入,進行與初始置換相反的逆置換,即得到密文輸出。
二、日誌跟蹤
為了有效地監控航空物探保密數據的訪問,確保保密數據安全,本系統針對保密數據開發了保密數據訪問日誌跟蹤功能。該功能類似於「攝像機」,把訪問資料庫中保密數據的時間、用戶、IP地址等信息記錄在資料庫的日誌庫表中,以備偵查。
首先,對保密數據進行日誌跟蹤定義,即對用戶的哪些操作進行跟蹤。系統提供了對用戶的查詢、新增、修改、刪除4種操作進行跟蹤功能,可以根據需要進行選擇其一或多個(圖3-5)。
日誌跟蹤定義生效後,系統自動對用戶實施跟蹤,並記錄用戶登錄名、登錄和退出時間(年/月/日,時/分/秒)、登錄計算機的IP地址,用戶對資料庫數據所進行的查詢、新增、修改、刪除操作。系統還提供了跟蹤日誌記錄查詢、列印、導出Excel表格文件等功能,便於資料庫管理人員使用。
圖3-5 資料庫日誌跟蹤設置
三、數據提取安全機制
數據提取是航空物探信息系統向地質、地球物理等領域的科研人員提供數據服務的重要內容之一。防止越權提取數據,保證數據安全,是本系統提供優質、高效服務的前提。
越權提取數據是兩個方面的問題。一是用戶在沒有獲得授權情況竊取數據,此問題屬系統使用安全。二是獲得授權的用戶擅自擴大提取數據的范圍,「順手牽羊」多提取數據。針對該問題,本系統採用以下機制(圖3-6)。
圖3-6 資料庫數據提取安全機制模型
首先由用戶(需要數據的單位或個人)提出使用數據申請,填寫使用數據審批表。該表包含申請號、申請人、使用數據的范圍(經緯度坐標)、審批人、審批日期、使用數據目的等信息。
用戶申請獲批准後,與中心簽訂資料使用保密協議。系統管理員授予用戶「數據提取權」,根據批準的申請設置提取數據的范圍,和數據提取權的有效期限。
在有效期限內,用戶可以提取設定范圍內的數據。同時,系統自動在數據提取記錄表中記錄用戶數據提取日誌(記錄提取數據的范圍、數據測量比例尺、數據來源的庫表、數據提取人和提取日期等),以備查系統數據安全。
③ 十大常見密碼加密方式
一、密鑰散列
採用MD5或者SHA1等散列演算法,對明文進行加密。嚴格來說,MD5不算一種加密演算法,而是一種摘要演算法。無論多長的輸入,MD5都會輸出一個128位(16位元組)的散列值。而SHA1也是流行的消息摘要演算法,它可以生成一個被稱為消息摘要的160位(20位元組)散列值。MD5相對SHA1來說,安全性較低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、對稱加密
採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密。對稱加密演算法中常用的演算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非對稱加密
非對稱加密演算法是一種密鑰的保密方法,它需要兩個密鑰來進行加密和解密,這兩個密鑰是公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。非對稱加密演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。
四、數字簽名
數字簽名(又稱公鑰數字簽名)是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。它是一種類似寫在紙上的普通的物理簽名,但是在使用了公鑰加密領域的技術來實現的,用於鑒別數字信息的方法。
五、直接明文保存
早期很多這樣的做法,比如用戶設置的密碼是「123」,直接就將「123」保存到資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。
六、使用MD5、SHA1等單向HASH演算法保護密碼
使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。
七、特殊的單向HASH演算法
由於單向HASH演算法在保護密碼方面不再安全,於是有些公司在單向HASH演算法基礎上進行了加鹽、多次HASH等擴展,這些方式可以在一定程度上增加破解難度,對於加了「固定鹽」的HASH演算法,需要保護「鹽」不能泄露,這就會遇到「保護對稱密鑰」一樣的問題,一旦「鹽」泄露,根據「鹽」重新建立彩虹表可以進行破解,對於多次HASH,也只是增加了破解的時間,並沒有本質上的提升。
八、PBKDF2
該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。
九、BCrypt
BCrypt 在1999年就產生了,並且在對抗 GPU/ASIC 方面要優於 PBKDF2,但是我還是不建議你在新系統中使用它,因為它在離線破解的威脅模型分析中表現並不突出。
十、SCrypt
SCrypt 在如今是一個更好的選擇:比 BCrypt設計得更好(尤其是關於內存方面)並且已經在該領域工作了 10 年。另一方面,它也被用於許多加密貨幣,並且我們有一些硬體(包括 FPGA 和 ASIC)能實現它。 盡管它們專門用於采礦,也可以將其重新用於破解。
④ sql server中怎麼給資料庫表中的用戶密碼加密
1、首先我們電腦上要安裝有SQL Server,然後要准備一個MDF資料庫文件。打開SQL Server。
⑤ 如何把資料庫中加密的密碼還原
加密演算法有對稱加密和非對稱加密。
對稱加密比如DES在加密和解密時使用同一個密鑰,通過密鑰就能還原了。
而非對稱加密比如RSA加密和解密時使用不同的密鑰,加密使用私鑰,而解密時需要公鑰;另外現在很多密碼存儲都是通過散列演算法的比如MD5。
而MD5是單向的,不能逆向解密(數學非常好可以嘗試下);所以很多網站門戶用戶密碼丟失時都是重置密碼而不能找回。
⑥ 非對稱加密演算法的主要應用
非對稱加密(公鑰加密):指加密和解密使用不同密鑰的加密演算法,也稱為公私鑰加密。假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。如果企業中有n個用戶,企業需要生成n對密鑰,並分發n個公鑰。假設A用B的公鑰加密消息,用A的私鑰簽名,B接到消息後,首先用A的公鑰驗證簽名,確認後用自己的私鑰解密消息。由於公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發將變得 十分簡單。同時,由於每個用戶的私鑰是唯一的,其他用戶除了可以通過信息發送者的公鑰來驗證信息的來源是否真實,還可以通過數字簽名確保發送者無法否認曾發送過該信息。非對稱加密的缺點是加解密速度要遠遠慢於對稱加密,在某些極端情況下,甚至能比對稱加密慢上1000倍。
//加密
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] PasswordBytes = encoding.GetBytes(password);//將密碼轉換為位元組數組RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();//RSA加密演算法,非對稱PasswordBytes=crypt.Encrypt(password ,false);//加密位元組數組,這是加密後的密碼值,放入資料庫中的表欄位中。
string key=crypt.ToXmlString(true);//輸出密鑰為XML格式的字元串,且包含私鑰,這個字元串要作為資料庫表中的一個欄位同用戶的密碼放在一起。
//解密
RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();//已隨機生成了一個密鑰對
crypt.Clear();//毀掉當前密鑰對
crypt.FromXmlString(key)//輸入密鑰對,key是從資料庫表欄位中讀取的那個XML格式的字元串,即密鑰欄位PasswordBytes=crypt.Decrypt(password ,false);//解密位元組數組,返回原始密碼給用戶
上面方法的一個特點是每個用戶對應一個密鑰(包含公鑰和私鑰),它們都是隨機生成的,所以各不相同。不過缺點也是很明顯的,就是密鑰存儲在資料庫中,如果資料庫被攻破密鑰就泄漏了。
還有另外一個方法就是依照上面方法隨機生成一個密鑰對(包含公鑰和私鑰),通過ToXmlString(true)方法導出,然後把這個XML字元串格式的密鑰放到你的Web程序的Web.config文件的AppSetting節點裡面,然後通過FromXmlString(key)方法讀入密鑰,這樣就意味著所有的用戶密碼都用同一個密鑰對加密和解密。
⑦ a想要使用非對稱密碼系統向b發送秘密消息.a應該使用哪個密鑰來加密消息
對稱密碼體制實現安全數據通信過程:(1)A和B協商用同一密碼系統。(2)A和B協商同一密鑰。(3)A用加密演算法和選取的密鑰加密他的銘文信息,得到了密文信息。(4)A發送密文信息給B。(5)B用同樣的演算法和密鑰解密密文,然後讀它。 非對稱密碼體制實現安全數據通信過程:(1)B從資料庫中得到A的公鑰。(2)B用A的公鑰加密信息,然後發送給A。(3)A用自己的私鑰解密B發送的信息。在B給A發送信息前,A必須將他的公鑰傳送給B。 兩種體制的主要區別:對稱密鑰加解密使用的同一個密鑰,或者能從加密密鑰很容易推出解密密鑰;非對稱密鑰演算法的加密密鑰和解密密鑰是不一樣的,或者說不能由其中一個密鑰推導出另一個密鑰。對稱密鑰演算法具有加密處理簡單,加解密速度快,密鑰較短,發展歷史悠久等特點,非對稱密鑰演算法具有加解密速度慢的特點,密鑰尺寸大,發展歷史較短等特點。
⑧ sql數據加密有幾種方法
對sql中的數據進行加密,有5種方法,
1、利用CONVERT改變編碼方式:
利用該函數把文字或數據轉換成VARBINARY。但該方式不具備保護數據的能力,僅避免瀏覽數據的過程中能直接看到敏感數據的作用。
2、利用對稱密鑰:
搭配EncryptByKey進行數據加密。使用DecryptByKey函數進行解密。這種方式比較適合大數據量。因為對稱密鑰的過程耗用資源較少。
3、利用非對稱密鑰:
搭配EncryptByAsymKey進行數據加密。使用DecryptByAsymKey函數進行解密。用於更高安全級別的加解密數據。因為耗用資源叫多。
4、利用憑證的方式:
搭配EncryptByCert進行加密和DecryptByCert函數進行解密。比較類似非對稱密鑰。
5、利用密碼短語方式:
搭配EncryptBypassPhrase進行加密,使用DecryptByPassPhrase函數來解密。可以使用有意義的短語或其他數據行,當成加密、解密的關鍵字,比較適合一般的數據加解密。
(8)非對稱加密資料庫密碼擴展閱讀:
sql資料庫的組成:
在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成:
1、一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。
2、一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。
3、一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。
4、一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。
5、用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。
6、SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。
SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。
參考資料來源:網路-SQL資料庫
⑨ asp.net mvc怎麼給密碼加密後存進資料庫,然後再從資料庫取出,解密再顯示出來
現在通用的都是 MD5非對稱加密方法來保證用戶密碼的安全,意思就是只能加密,不能解密。
如果需要解密碼就得用對稱加密方法。在.NET庫的System.Security.Cryptography命名空間中,有有RC2、DES、TripleDES和Rijndael四種對稱加密方法,可選用
⑩ 應用程序 應當在什麼時候加密數據
在什麼時候加密,要看你的程序在什麼階段最容易受到攻擊。
一般數據最容易被竊聽的階段是傳輸階段,因此加密一般發生在數據傳輸過程前後,即客戶端在提交數據之前對其進行加密,資料庫或伺服器端接收到加密的數據之後對其進行解密,然後以明文形式保存。這種加密形式一般採用對稱加密或非對稱加密技術。
資料庫端以加密數據進行保存的方式一般發生在存儲密碼的時候。這樣任何人包括資料庫管理員都不能看到密碼原文,這種加密方式一般採用盡量不可逆的形式,比如md5。