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