md5是什么算法(MD5是什么算法)
md5是什么算法
MD5:嚴(yán)格來說不算加密算法,只能說是摘要算法;
MD5是什么算法
md5,sha1,sha256屬于密碼級散列函數(shù),算法相對比較復(fù)雜,參與加密算法的過程中時(shí)也比較安全。crc只是專用的校驗(yàn)散列函數(shù),算法相對比較簡單。
安全級別不同也導(dǎo)致輸出長度
常用的CRC32 只輸出32bit
MD5輸出128bit
SHA1輸出160bit
SHA256輸出256bit
這也反映了復(fù)雜度和安全要求的遞增。
對安全要求的不同導(dǎo)致他們的“應(yīng)用場景就不同”:
對密碼用CRC32就很不安全,普通密碼可以用MD5,但數(shù)字證書和數(shù)字簽名就法定必須用SHA256,
對普通數(shù)據(jù)效驗(yàn)完整性也沒必要用SHA1,SHA256這樣計(jì)算相對復(fù)雜的算法,會慢很多。
描述MD5算法
對MD5逆向算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級聯(lián)后將生成一個(gè)128位散列值。
第一步、填充:如果輸入信息的長度(bit)對512求余的結(jié)果不等于448,就需要填充使得對512求余的結(jié)果等于448。填充的方法是填充一個(gè)1和n個(gè)0。填充完后,信息的長度就為N*512+448(bit);
第二步、記錄信息長度:用64位來存儲填充前信息長度。這64位加在第一步結(jié)果的后面,這樣信息長度就變?yōu)镹*512+448+64=(N+1)*512位。
第三步、裝入標(biāo)準(zhǔn)的幻數(shù)(四個(gè)整數(shù)):標(biāo)準(zhǔn)的幻數(shù)(物理順序)是(A=(01234567)16,B=(89ABCDEF)16,C=(FEDCBA98)16,D=(76543210)16)。如果在程序中定義應(yīng)該是(A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L)。
MD5算法代碼
md5就是一種信息摘要加密算法。MD5英文名叫MD5 Message-Digest Algorithm,一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個(gè)128位(16字節(jié))的散列...
md5屬于什么算法
SHA-1與MD5的比較
因?yàn)槎呔蒑D4導(dǎo)出,SHA-1和MD5彼此很相似。相應(yīng)的,他們的強(qiáng)度和其他特性也是相似,但還有以下幾點(diǎn)不同:
l 對強(qiáng)行攻擊的安全性:最顯著和最重要的區(qū)別是SHA-1摘要比MD5摘要長32 位。使用強(qiáng)行技術(shù),產(chǎn)生任何一個(gè)報(bào)文使其摘要等于給定報(bào)摘要的難度對MD5是2^128數(shù)量級的操作,而對SHA-1則是2^160數(shù)量級的操作。這樣,SHA-1對強(qiáng)行攻擊有更大的強(qiáng)度。
l 對密碼分析的安全性:由于MD5的設(shè)計(jì),易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。
l 速度:在相同的硬件上,SHA-1的運(yùn)行速度比MD5慢。
md5算法作用
SHA-1算法的哈希值大小為160位,其計(jì)算輸出長度為40位。
MD5算法的哈希值大小為128位,其計(jì)算輸出長度為32位。
MD5 算法
MD5算法(英語:MD5 Message-Digest Algorithm),是一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個(gè)128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。MD5由美國密碼學(xué)家羅納德·李維斯特(Ronald Linn Rivest)設(shè)計(jì),于1992年公開,用以取代MD4算法。
這套算法的程序在 RFC 1321 標(biāo)準(zhǔn)中被加以規(guī)范。1996年后該算法被證實(shí)存在弱點(diǎn),可以被加以破解,對于需要高度安全性的數(shù)據(jù),專家一般建議改用其他算法,如SHA-2。2004年,證實(shí)MD5算法無法防止碰撞(collision),因此不適用于安全性認(rèn)證,如SSL公開密鑰認(rèn)證或是數(shù)字簽名等用途。
MD5算法的具體過程
MD5嚴(yán)格意義上來講,不是加密算法,而是摘要算法/散列算法,或者叫做哈希算法。
加密算法的目的,在于別人無法成功查看加密后的數(shù)據(jù),并且在需要的時(shí)候還可以對數(shù)據(jù)進(jìn)行解密來重新查看數(shù)據(jù)。而 MD5 算法是一種哈希算法,哈希算法的設(shè)計(jì)目標(biāo)本身就決定了,它在大多數(shù)時(shí)候都是不可逆的,即你經(jīng)過哈希算法得出的數(shù)據(jù),無法再經(jīng)過任何算法還原回去。所以,既然不能將數(shù)據(jù)還原,也就不能稱之為可以解密;既然不能解密,那么哈希的過程自然也就不能稱作是「加密」了。
MD5是( )算法
MD5算法不可逆的原因是其是一種散列函數(shù),使用的是hash算法,在計(jì)算過程中原文的部分信息是丟失了的。
不過有個(gè)地方值得指出的是,一個(gè)MD5理論上的確是可能對應(yīng)無數(shù)多個(gè)原文的,因?yàn)镸D5是有限多個(gè)的而原文可以是無數(shù)多個(gè)。比如主流使用的MD5將任意長度的“字節(jié)串映射為一個(gè)128bit的大整數(shù)。也就是一共有2128種可能,大概是3.4*1038,這個(gè)數(shù)字是有限多個(gè)的,而但是世界上可以被用來加密的原文則會有無數(shù)的可能性。