一般來(lái)說(shuō)分為三種:
⑴. 不可逆算法(單向散列哈希算法)。代表就是MD5,SHA等等。
⑵. 對(duì)稱可逆加密。代表是DES,AES
⑶. 非對(duì)稱可逆算法。代表是RSA

Q:相同的兩段文字加密后結(jié)果一樣嗎?
A:相同原文加密是一致的
Q:“長(zhǎng)征八號(hào)運(yùn)載火箭首飛成功”和“長(zhǎng)征八號(hào)運(yùn)載火箭首飛成功哦”加密結(jié)果相似嗎?
A:原文即使差距很小,但是加密后差距很大
Q:"長(zhǎng)"和“我很短,但是我很牛”,加密結(jié)果長(zhǎng)度一樣嗎?
A:不同的長(zhǎng)度原文加密后長(zhǎng)度一致
Q:md5的用途有哪些?
A:
- 文件摘要:不管文件多大,加密結(jié)果都是32位長(zhǎng)度,但是只要有一個(gè)小改變,加密結(jié)果就會(huì)發(fā)生改變。文件內(nèi)容不變,名字變了,但是加密結(jié)果不變,所以可以通過(guò)這個(gè)來(lái)判斷是否是一個(gè)文件。
- 急速秒傳:上傳一個(gè)文件的時(shí)候,就會(huì)進(jìn)行加密,對(duì)比結(jié)果,如果服務(wù)器上已經(jīng)存在,那么就不需要再次上傳了。
- 代碼版本控制,可以知道是不是有代碼的改動(dòng),因?yàn)閮?nèi)容變了,md5的值就變了,那么就是有改動(dòng)。
- 防止抵賴,數(shù)字簽名:CA
Q:百度可以搜出來(lái)很多Md5破解,那么md5真的可以被破解嗎?
A:32位的結(jié)果是一個(gè)很大的數(shù)字,但是還是可以用窮舉法來(lái)破解。此時(shí)可以加鹽,應(yīng)對(duì)簡(jiǎn)單密碼破解。
Q:世界上會(huì)存在兩個(gè)不同的東西,但是加密出來(lái)的md5是一樣的嗎?
A:是有可能的。
Q:既然有這么安全的非對(duì)稱可逆算法,為什么還要有相對(duì)不夠安全的對(duì)稱可逆算法?
A:因?yàn)榉菍?duì)稱可逆算法會(huì)更浪費(fèi)資源和存儲(chǔ),增加了響應(yīng)時(shí)間,對(duì)于一些場(chǎng)景,并不需要這么復(fù)雜的安全級(jí)別或者對(duì)速度要求高,還是會(huì)采用對(duì)稱可逆算法的。因?yàn)榧用芙饷艿乃俣群芸臁?/p>
Q:公鑰就是解密key,私鑰就是加密key,對(duì)嗎?
A:并不對(duì),這個(gè)要看應(yīng)用的場(chǎng)景。并不是每次公開(kāi)的都是解密key。


1. DES(AES):加密Key和解密Key是一個(gè)
問(wèn)題是key的保管,加密解密很快
2.? RSA:加密Key和解密Key是一對(duì),但是兩個(gè)key之間無(wú)法推導(dǎo)
加密解密的速度快,安全性好
a. 公開(kāi)加密key,自己持有解密key? ----? 安全
b. 公開(kāi)解密key,自己持有加密key? ----? 不可篡改
3. CA --- 包含了例如持有者姓名,發(fā)證機(jī)關(guān),有效日期,持有人的公鑰,擴(kuò)展信息等信息,然后用md5加密,和CA的私鑰來(lái)加密
這個(gè)私鑰是安裝到服務(wù)器,而客戶端瀏覽器安裝證書(shū)就是解密key