1. 我用的是sql server2008如何對敏感數據進行加密前台的開發語言是jsp+java
您好,提問者:
對於敏感數據存儲的時候請Java代碼進行演算法或者MD5加密。
對於密碼啊,發送報文信息都可以進行加密的。
2. MD5演算法在信息安全方面有那些主要的作用
MD5是一種信息摘要演算法,說白了就是對一段信息進行計算,然後得到這段信息的"DNA",這樣校驗兩個信息是否相同只需要對比這個"DNA"是否一樣就可以了。。
當然,因為信息摘要演算法具有不可逆(理論上可逆,但是代價過大)的特性,所以同時也可以對密碼進行所謂的「加密」。。
3. md5是常用的數據加密演算法正確嗎
不對,這只是一種信息摘要演算法,就是從一段數據(不管其大小)中通過計算提取出摘要信息組成一個128位(16位元組)的散列值,也就是說不管數據有多少,產生的都是一個固定長度的字串,所以不可能用於數據加密,主要用於驗證數據傳輸的正確性(比如數據從A地傳輸前先計算其MD5值,傳輸到B地後再計算MD5值,兩個值相同即表示傳輸是完全准確的),也可以用作密碼數據的加密儲存(但這里所謂的「加密」與通常理解的數據「加密」不是同一概念)。通俗來講,MD5更像是指紋,通過在不同場合提取指紋進行比對,就可以知道兩個人是否為同一個人。
4. md5值是什麼,有什麼用
md5是個散列函數,任何數據經過md5將生成一個16位的值或32位的值〔md5的版本不同造成位數不同〕。
md5有兩個重要的性質,第一是無法逆推,只有md5生成的值是無法逆推出原有數據的。第二是原數據只要有一點改動,md5值就會有很大變動。
這兩個性質決定了md5有很多用途。第一個性質在密碼領域大有用途,我們如果把qq密碼丟了,用密保找回,這是騰訊肯定不會給你原密碼的,而是讓輸入新密碼,這是因為你的原密碼在存入資料庫前,經過了md5〔也可能是其他散列函數,散列函數都有這性質,只不過md5是最出名的〕處理,這時誰都無法知道原密碼,即使資料庫數據泄漏,別人也無法知道原密碼,而當你輸入原密碼登錄時,密碼就用原來的方法處理一下,與資料庫里的加密密碼對比,想同就允許登錄。這個只能改密碼不能獲取新密碼的情況在其他密碼的應用比比皆是,銀行也是一個。
第二個用途樓上也說了,就是檢驗,文件檢驗也是種應用,不過這只是簡單的應用,一般我們去ATM機取款,ATM機會把我們的取款金額加密傳輸到伺服器,可是中途出現問題數據被改了怎麼辦,這時就可以用MD5檢驗啦,如果檢驗沒問題,只要保證線路沒問題,那麼所傳的數據就是沒問題的,不然就是傳輸出問題的,錢可是個敏感的東西,銀行的東西可不能出現一絲差錯,所以銀行的數據都是經過層層檢驗的。
5. md5是常用的數據加密演算法正確嗎
摘要 對。
6. MD5是不可逆的,那各種行業領域就都用MD5可以了,為什麼還要用其他的加密演算法,能舉些其他加密演算法的應用
md5嚴格來說,只是特徵值,並不是加密演算法
也就是說md5可以用來校驗數據完整性,但無法保密
加密的目的是讓外人不知道數據是什麼
而不管是什麼加密演算法,都有理論上的破解可能性,無非是花多少時間已經多大成本
另外不同演算法加密和解密的時候開銷也不一樣,有的占資源多,有速度快,有的不好破解
在不同前提下就有了最合適的演算法
也就是說,加密演算法追求的無非是更快,更省資源,更難破解,而這幾個往往是矛盾的,於是就有了各個方向上的研究創新,最終出現的了大量演算法。
7. 為什麼不能用MD5或SHA-1作為檢錯碼演算法
通常所說的檢錯碼是用於實施性較高的場合,例如數據的實時存儲,數據的通信傳輸等等。有很多種演算法可以保證在很小開銷的情況下,實現傳輸數據錯誤檢測的功能。而md5或sha-1演算法,主要是用來檢測數據的完整性,演算法復雜性稍微大一些。也就是說殺雞焉用牛刀?
8. 誰能通俗易懂地講講MD5加密原理
MD5演算法的原理可簡要的敘述為:MD5碼以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。
在MD5演算法中,首先需要對信息進行填充,這個數據按位(bit)補充,要求最終的位數對512求模的結果為448。也就是說數據補位後,其位數長度只差64位(bit)就是512的整數倍。
即便是這個數據的位數對512求模的結果正好是448也必須進行補位。
補位的實現過程:首先在數據後補一個1 bit; 接著在後面補上一堆0 bit, 直到整個數據的位數對512求模的結果正好為448。總之,至少補1位,而最多可能補512位。
(8)敏感數據是否可以使用md5演算法擴展閱讀
當需要保存某些密碼信息以用於身份確認時,如果直接將密碼信息以明碼方式保存在資料庫中,不使用任何保密措施,系統管理員就很容易能得到原來的密碼信息,這些信息一旦泄露, 密碼也很容易被破譯。為了增加安全性,有必要對資料庫中需要保密的信息進行加密,這樣,即使有人得到了整個資料庫,如果沒有解密演算法,也不能得到原來的密碼信息。
MD5演算法可以很好地解決這個問題,因為它可以將任意長度的輸入串經過計算得到固定長度的輸出,而且只有在明文相同的情況下,才能等到相同的密文,並且這個演算法是不可逆的,即便得到了加密以後的密文,也不可能通過解密演算法反算出明文。
這樣就可以把用戶的密碼以MD5值(或類似的其它演算法)的方式保存起來,用戶注冊的時候,系統是把用戶輸入的密碼計算成 MD5 值,然後再去和系統中保存的 MD5 值進行比較,如果密文相同,就可以認定密碼是正確的,否則密碼錯誤。
通過這樣的步驟,系統在並不知道用戶密碼明碼的情況下就可以確定用戶登錄系統的合法性。這樣不但可以避免用戶的密碼被具有系統管理員許可權的用戶知道,而且還在一定程度上增加了密碼被破解的難度。
MD5 演算法還可以作為一種電子簽名的方法來使用,使用 MD5演算法就可以為任何文件(不管其大小、格式、數量)產生一個獨一無二的「數字指紋」,藉助這個「數字指紋」,通過檢查文件前後 MD5 值是否發生了改變,就可以知道源文件是否被改動。
9. MD5、SHA1、CRC32值是干什麼的
MD5可以產生出一個128位(16位元組)的散列值(hash value),用於確保信息傳輸完整一致。MD5由MD4、MD3、MD2改進而來,主要增強演算法復雜度和不可逆性。MD5演算法因其普遍、穩定、快速的特點,仍廣泛應用於普通數據的加密保護領域 。
SHA-1(英語:Secure Hash Algorithm 1,中文名:安全散列演算法1)是一種密碼散列函數,美國國家安全局設計,並由美國國家標准技術研究所(NIST)發布為聯邦數據處理標准(FIPS)。SHA-1可以生成一個被稱為消息摘要的160位(20位元組)散列值,散列值通常的呈現形式為40個十六進制數。
CRC32檢錯能力極強,開銷小,易於用編碼器及檢測電路實現。從其檢錯能力來看,它所不能發現的錯誤的幾率僅為0.0047%以下。從性能上和開銷上考慮,均遠遠優於奇偶校驗及算術和校驗等方式。
因而,在數據存儲和數據通訊領域,CRC無處不在:著名的通訊協議X.25的FCS(幀檢錯序列)採用的是CRC-CCITT,ARJ、LHA等壓縮工具軟體採用的是CRC32,磁碟驅動器的讀寫採用了CRC16,通用的圖像存儲格式GIF、TIFF等也都用CRC作為檢錯手段。
(9)敏感數據是否可以使用md5演算法擴展閱讀:
在MD5演算法中,首先需要對信息進行填充,這個數據按位(bit)補充,要求最終的位數對512求模的結果為448。也就是說數據補位後,其位數長度只差64位(bit)就是512的整數倍。即便是這個數據的位數對512求模的結果正好是448也必須進行補位。
補位的實現過程:首先在數據後補一個1 bit; 接著在後面補上一堆0 bit, 直到整個數據的位數對512求模的結果正好為448。總之,至少補1位,而最多可能補512位 。
10. 常用的加密演算法有哪些
對稱密鑰加密
對稱密鑰加密 Symmetric Key Algorithm 又稱為對稱加密、私鑰加密、共享密鑰加密:這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單的相互推算的密鑰,對稱加密的速度一般都很快。
分組密碼
分組密碼 Block Cipher 又稱為「分塊加密」或「塊加密」,將明文分成多個等長的模塊,使用確定的演算法和對稱密鑰對每組分別加密解密。這也就意味著分組密碼的一個優點在於可以實現同步加密,因為各分組間可以相對獨立。
與此相對應的是流密碼:利用密鑰由密鑰流發生器產生密鑰流,對明文串進行加密。與分組密碼的不同之處在於加密輸出的結果不僅與單獨明文相關,而是與一組明文相關。
DES、3DES
數據加密標准 DES Data Encryption Standard 是由IBM在美國國家安全局NSA授權下研製的一種使用56位密鑰的分組密碼演算法,並於1977年被美國國家標准局NBS公布成為美國商用加密標准。但是因為DES固定的密鑰長度,漸漸不再符合在開放式網路中的安全要求,已經於1998年被移出商用加密標准,被更安全的AES標准替代。
DES使用的Feistel Network網路屬於對稱的密碼結構,對信息的加密和解密的過程極為相似或趨同,使得相應的編碼量和線路傳輸的要求也減半。
DES是塊加密演算法,將消息分成64位,即16個十六進制數為一組進行加密,加密後返回相同大小的密碼塊,這樣,從數學上來說,64位0或1組合,就有2^64種可能排列。DES密鑰的長度同樣為64位,但在加密演算法中,每逢第8位,相應位會被用於奇偶校驗而被演算法丟棄,所以DES的密鑰強度實為56位。
3DES Triple DES,使用不同Key重復三次DES加密,加密強度更高,當然速度也就相應的降低。
AES
高級加密標准 AES Advanced Encryption Standard 為新一代數據加密標准,速度快,安全級別高。由美國國家標准技術研究所NIST選取Rijndael於2000年成為新一代的數據加密標准。
AES的區塊長度固定為128位,密鑰長度可以是128位、192位或256位。AES演算法基於Substitution Permutation Network代換置列網路,將明文塊和密鑰塊作為輸入,並通過交錯的若干輪代換"Substitution"和置換"Permutation"操作產生密文塊。
AES加密過程是在一個4*4的位元組矩陣(或稱為體State)上運作,初始值為一個明文區塊,其中一個元素大小就是明文區塊中的一個Byte,加密時,基本上各輪加密循環均包含這四個步驟:
ECC
ECC即 Elliptic Curve Cryptography 橢圓曲線密碼學,是基於橢圓曲線數學建立公開密鑰加密的演算法。ECC的主要優勢是在提供相當的安全等級情況下,密鑰長度更小。
ECC的原理是根據有限域上的橢圓曲線上的點群中的離散對數問題ECDLP,而ECDLP是比因式分解問題更難的問題,是指數級的難度。而ECDLP定義為:給定素數p和橢圓曲線E,對Q=kP,在已知P,Q 的情況下求出小於p的正整數k。可以證明由k和P計算Q比較容易,而由Q和P計算k則比較困難。
數字簽名
數字簽名 Digital Signature 又稱公鑰數字簽名是一種用來確保數字消息或文檔真實性的數學方案。一個有效的數字簽名需要給接收者充足的理由來信任消息的可靠來源,而發送者也無法否認這個簽名,並且這個消息在傳輸過程中確保沒有發生變動。
數字簽名的原理在於利用公鑰加密技術,簽名者將消息用私鑰加密,然後公布公鑰,驗證者就使用這個公鑰將加密信息解密並對比消息。一般而言,會使用消息的散列值來作為簽名對象。