① md5 SHA1 CRC32是什麼
什麼是MD5,什麼是SHA-1,如何校驗這些Hash Hash,一般翻譯做「散列」,也有直接音譯為」哈希」的,就是把任意長度的輸入(又叫做預映射,pre-image),通過散列演算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小於輸入的空間,不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一的確定輸入值。 簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。 HASH主要用於信息安全領域中加密演算法,他把一些不同長度的信息轉化成雜亂的128位的編碼里,叫做HASH值.也可以說,hash就是找到一種數據內容和數據存放地址之間的映射關系 了解了hash基本定義,就不能不提到一些著名的hash演算法,MD5和SHA1可以說是目前應用最廣泛的Hash演算法,而它們都是以MD4為基礎設計的。那麼他們都是什麼意思呢? 這里簡單說一下: MD5 MD5(RFC1321)是Rivest於1991年對MD4的改進版本。它對輸入仍以512位分組,其輸出是4個32位字的級聯,與MD4相同。MD5比MD4來得復雜,並且速度較之要慢一點,但更安全,在抗分析和抗差分方面表現更好。 MD5是一種不可逆的加密演算法,目前是最牢靠的加密演算法之一,尚沒有能夠逆運算的程序被開發出來,它對應任何字元串都可以加密成一段唯一的固定長度的代碼。 那麼它有什麼用呢?很簡單,通過它可以判斷原始值是否正確(是否被更改過)。一般用於密碼的加密。而我們所提供的MD5校驗碼就是針對安裝程序的唯一對應的一段代碼。你可以使用任何MD5運算器對下載的文件進行運算,運算出來的結果如果完全符合我們提供的MD5校驗碼,那麼說明你下載的這個程序沒有被中途修改過。 這個特徵碼有如下特性,首先它不可逆,例如我有一段秘密的文字如:」MySecretWords」,經演算法變換後得到MD5碼(),把這個碼告訴其他人,他們根據這個MD5碼是沒有系統的方法可以知道你原來的文字是什麼的。 其次,這個碼具有高度的離散性,也就是說,原信息的一點點變化就會導致MD5的巨大變化,例如」ABC」MD5()和」ABC」(多了一空格)MD5()差別非常大,而且之間沒有任何關系,也就是說產生的MD5碼是不可預測的。 最後由於這個碼有128位那麼長,所以任意信息之間具有相同MD5碼的可能性非常之低,通常被認為是不可能的。 所以一般認為MD5碼可以唯一地代表原信息的特徵,通常用於密碼的加密存儲,數字簽名,文件完整性驗證等。 SHA1及其他 SHA1是由NISTNSA設計為同DSA一起使用的,它對長度小於264的輸入,產生長度為160bit的散列值,因此抗窮舉(brute-force)性更好。SHA-1設計時基於和MD4相同原理,並且模仿了該演算法。SHA-1是由美國標准技術局(NIST)頒布的國家標准,是一種應用最為廣泛的hash函數演算法,也是目前最先進的加密技術,被政府部門和私營業主用來處理敏感的信息。而SHA-1基於MD5,MD5又基於MD4。 論壇里提供的系統鏡像文件的hash也就是微軟官方提供的SHA-1值,下載後和此值對應,就說明你下載過程中文件沒有被更改,屬於原版。 什麼是CRC CRC的全稱為CyclicRendancyCheck,中文名稱為循環冗餘校驗。它是一類重要的線性分組碼,編碼和解碼方法簡單,檢錯和糾錯能力強,在通信領域廣泛地用於實現差錯控制。實際上,除數據通信外,CRC在其它很多領域也是大有用武之地的。例如我們讀軟盤上的文件,以及解壓一個ZIP文件時,偶爾會碰到「BadCRC」錯誤,由此它在數據存儲方面的應用可略見一斑。 那麼這些Hash演算法到底有什麼用呢? Hash演算法在信息安全方面的應用主要體現在以下的3個方面: 1)文件校驗 我們比較熟悉的校驗演算法有奇偶校驗和CRC校驗,這2種校驗並沒有抗數據篡改的能力,它們一定程度上能檢測並糾正數據傳輸中的信道誤碼,但卻不能防止對數據的惡意破壞。 MD5Hash演算法的」數字指紋」特性,使它成為目前應用最廣泛的一種文件完整性校驗和(Checksum)演算法,不少Unix系統有提供計算md5checksum的命令。 2)數字簽名 Hash演算法也是現代密碼體系中的一個重要組成部分。由於非對稱演算法的運算速度較慢,所以在數字簽名協議中,單向散列函數扮演了一個重要的角色。對Hash值,又稱」數字摘要」進行數字簽名,在統計上可以認為與對文件本身進行數字簽名是等效的。而且這樣的協議還有其他的優點。 3)鑒權協議 如下的鑒權協議又被稱作」挑戰--認證模式:在傳輸信道是可被偵聽,但不可被篡改的情況下,這是一種簡單而安全的方法。 當然,hash函數並不是完全可靠,不同文件產生相同MD5和SHA1的幾率還是有的,只是不高,在我們論壇里提供的系統光碟,你想對這么幾個文件存在相同HASH的不同文件根本是不可能的。 論壇MSDN版塊,提供的就是微軟發布MSDN提供給程序員研究的Windows系統的鏡像的HASH值——SHA-1,不提供MD5因為微軟只提供了SHA1。而論壇發布區發布的鏡像是和這些值對應的鏡像,你校驗自己的鏡像的HASH和MSDN信息區相應版本的SHA-1對應的上,說明你手中的光碟是微軟通過MSDN發布的原盤。對不上還存在屬於零售或通過銷售渠道發布的鏡像的可能。畢竟MSDN只是微軟發布系統光碟的一個途徑,MSDN只是給程序開發人員研究用的。 尋求原版的證實,對應SHA-1和MD5外,CRC的認證也是一個很重要的因素,CRC同樣是校驗文件的完整性,還有CDIMGE的封裝版本。 微軟出品的鏡像都能通過CRC驗證,當然也有人使用CRC自己進行製作可以得到通過CRC的鏡像,那麼這時候你需要對應鏡像的SHA-1等了,所以,驗證一個鏡像的原盤可以通過對應多個數值來完成。
② md5不是用來校驗下載來的軟體的完整性的嗎md5碼為什麼可以破解帳號密碼
md5是一種不可逆的加密演算法,也就是說除了窮舉外只根據密文不可能得到明文。md5一般有兩種用途:第一個是例如對資料庫里保存的密碼加密,另一個就是你說的校驗、檢錯。md5的一個性質就是明文哪怕改動一點點,所得到的密文就會與之前完全不同,所以可以驗證文件的完整性,如果你要問為什麼有這樣的性質,那涉及到它的演算法原理太復雜。我的理解就這么深了,希望能幫到你
③ 用於文件加密的演算法有哪些,以及它們的原理
MD5全稱"message-digest algorithm 5"(信息-摘要演算法)。
90年代初由MIT計算機科學實驗室和RSA Data Security Inc聯合開發。
MD5演算法採用128位加密方式,即使一台計算機每秒可嘗試10億條明文,要跑出原始明文也要1022年。在802.1X認證中,一直使用此演算法。
加密演算法之二---ELGamal
ELGamal演算法是一種較為常見的加密演算法,他基於1984年提出的公鑰密碼體制和橢圓曲線加密體系。即能用於數據加密,又能用於數字簽名,起安全性依賴於計算有限領域上離散對數這一數學難題。
著名的DSS和Schnorr和美國國家標准X9.30-199X中ELGamal為唯一認可加密方式。並且橢圓曲線密碼加密體系增強了ELGamal演算法的安全性。
ELGamal在加密過程中,生成的密文長度是明文的兩倍。且每次加密後都會在密文中生成一個隨即數K。
加密演算法之三---BlowFish
BlowFish演算法由著名的密碼學專家部魯斯·施耐爾所開發,是一個基於64位分組及可變密鑰長度[32-448位]的分組密碼演算法。
BlowFish演算法的核心加密函數名為BF_En,為一種對稱演算法,加密強度不夠。
加密演算法之四---SHA
SHA(即Secure Hash Algorithm,安全散列演算法)是一種常用的數據加密演算法,由美國國家標准與技術局於1993年做為聯邦信息處理標准公布,先版本SHA-1,SHA-2。
SHA演算法與MD5類似,同樣按2bit數據塊為單位來處理輸入,但它能產生160bit的信息摘要,具有比MD5更強的安全性。
SHA收到一段明文,然後以不可逆方式將它轉為一段密文,該演算法被廣泛運用於數字簽名及電子商務交易的身份認證中。(
④ 常用的加密演算法有哪些
對稱密鑰加密
對稱密鑰加密 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 又稱公鑰數字簽名是一種用來確保數字消息或文檔真實性的數學方案。一個有效的數字簽名需要給接收者充足的理由來信任消息的可靠來源,而發送者也無法否認這個簽名,並且這個消息在傳輸過程中確保沒有發生變動。
數字簽名的原理在於利用公鑰加密技術,簽名者將消息用私鑰加密,然後公布公鑰,驗證者就使用這個公鑰將加密信息解密並對比消息。一般而言,會使用消息的散列值來作為簽名對象。
⑤ 常用的數據加密演算法有哪些
想要加密電腦內重要文件數據,可以直接使用加密軟體來保護,方法簡單便捷安全。據了解現在市面上的加密軟體都是採用的透明加密,可以對文件進行受控加密,在內部環境是可以正常打開使用的,脫離內部環境則打不開或者亂碼,可以設置禁止拷貝、復制、修改、截屏等。文件外發需要授權,未授權解密無論以任何形式發出都是無法正常打開使用的。還可設置文件外發的瀏覽次數與打開時間。
⑥ 網路文件加密與文件完整性的實現演算法
吧文件加密.加密後進行加密核對.
⑦ 常用的數字簽名、鑒別、加密演算法分別有哪些這幾種機制分別保障了信息的哪種安全屬性
常見的數字簽名有RSA,DSA,ECDSA
加密演算法一般分為對稱加密和非對稱加密,消息摘要演算法。
對稱加密中,DSE最為典型,還要ASE,IDEA,PBE等,一般用於數據加密
非對稱加密中,當然是RSA最為基礎,還有ECC,ElGamal等,一般用於密鑰加密,安全性高,
但若數據加密效率相對對稱加密,就比較低了。
消息摘要有MD,SHA,MAC等,用於數據完整性驗證。