概述
- 加密算法分為單向加密和雙向加密,明文數(shù)據(jù)通過加密后傳輸荐吉,以確保傳輸和存儲(chǔ)安全
- 單向加密包括 MD5、SHA口渔、BCrypt 加密算法等样屠,它是不可逆的,也就是無法將加密后的數(shù)據(jù)恢復(fù)成原始數(shù)據(jù)缺脉,除非采用碰撞等方式痪欲,一般賬戶密碼的存儲(chǔ)是采用單向加密方式
- 雙向加密是可逆的,存在密文的密鑰攻礼,持有密文的一方可以根據(jù)密鑰解密得到的原始明文业踢,一般用于發(fā)送方和接收方都能通過密鑰獲取明文信息,雙向加密包括對(duì)稱加密和非對(duì)稱加密礁扮。對(duì)稱加密包括 DES陨亡、AES 加密,非對(duì)稱加密包括 RSA深员、ECC 加密
算法介紹
MD5 算法
- MD5 為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù)负蠕,用以提供消息完整性的保護(hù),是一種消息摘要算法倦畅,它是不可逆的
- MD5 廣泛用于軟件的密碼認(rèn)證和鑰匙識(shí)別上
SHA-1遮糖、SHA-2 算法
- SHA-1 是和 MD5 一樣流行的消息摘要算法,SHA 加密算法模仿 MD4 加密算法叠赐,它比 MD5 安全性更強(qiáng)
- SHA-2 是 SHA-1 的繼承者欲账,SHA-1 是 160 位的哈希值,SHA-2 是組合值芭概,有不同的位數(shù)赛不,最受歡迎的是 256 位
AES 算法
- AES 加密算法是密碼學(xué)中高級(jí)加密標(biāo)準(zhǔn),該加密算法采用對(duì)稱分組密碼體制罢洲,密鑰長(zhǎng)度最少支持為 128踢故、192、256惹苗,分組長(zhǎng)度為 128 位殿较,算法應(yīng)易于硬件和軟件實(shí)現(xiàn)
- 這種加密算法是美國(guó)聯(lián)邦政府采用的區(qū)塊加密標(biāo)準(zhǔn),用來替代 DES
DES 算法
- DES 加密算法是一種分組算法桩蓉,以 64 位為分組對(duì)數(shù)據(jù)加密淋纲,它的密鑰長(zhǎng)度是 56 位,加密解密采用同一算法院究。
- DES 加密是對(duì)密鑰進(jìn)行保密洽瞬,而公開算法本涕,這樣只有擁有密鑰的人才能解讀數(shù)據(jù),因此破解 DES 加密算法實(shí)際上就是搜索密鑰的編碼
- 隨著計(jì)算機(jī)的發(fā)展伙窃,DES 的安全性相對(duì)較弱
RSA 算法
- RSA 加密算法是目前最有影響的公鑰加密算法菩颖,并被普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一
- RSA 是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,能抵制目前為止已知的所有密碼攻擊对供,被 ISO 推薦為公鑰加密標(biāo)準(zhǔn)
Base64 算法
- Base64 加密算法是最常見的用于傳遞 8bit 字節(jié)碼的編碼方式之一
- 計(jì)算機(jī)任何數(shù)據(jù)都是按 ascii 碼存儲(chǔ)的位他,而 ascii 碼的 128~256 之間的值是不可見字符氛濒,由于不同設(shè)備對(duì)字符處理方式有不同产场,可能會(huì)導(dǎo)致錯(cuò)誤,不利于傳輸舞竿,所以把數(shù)據(jù)作為一個(gè) Base64 編碼京景,統(tǒng)統(tǒng)變成可見字符,出錯(cuò)可能性就降低了
- Base64 是取 6 個(gè)比特為一組骗奖,計(jì)算它的 ascii 值确徙,得到一個(gè)可見字符,在解碼時(shí)按 6 個(gè)比特進(jìn)行解碼并讀取执桌,如 01010101101 等比特流鄙皇,取 010110 計(jì)算它的 ascii 碼,轉(zhuǎn)化為可見字符仰挣,因此 Base64 還具備了數(shù)據(jù)壓縮能力
Bcrypt 算法
- MD5 之所以能被輕易暴力破解的原因在于它速度“太快”伴逸,而 Bcrypt 能減緩加密過程,加密時(shí)間比 MD5 慢膘壶,也因此比 MD5 安全错蝴,因?yàn)橥ㄟ^暴力破解方式需要非常長(zhǎng)的時(shí)間