2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
哈希是一種單向函數(shù),它將多個(gè)值映射到一個(gè)結(jié)果,這意味著您無法在給定結(jié)果的情況下找到原始值。
然而,存儲原始值和哈希結(jié)果的數(shù)據(jù)庫確實(shí)存在,因此 MD5 哈希確實(shí)不利于安全。例如,如果您給我哈希值e10adc3949ba59abbe56e057f20f883e,我可以搜索原始值,如果幸運(yùn)的話,我會發(fā)現(xiàn)123456是該哈希結(jié)果的可能答案。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
我認(rèn)為您很難識別加密和散列之間的區(qū)別。盡管它們都與密碼學(xué)領(lǐng)域相關(guān),但它們解決的問題不同。它們都用于安全地存儲數(shù)據(jù),但解決問題的方式差異很大。
這里要注意的關(guān)鍵是 - 散列是一種單向函數(shù),而加密則不是。
一個(gè)非常簡單且安全的散列算法將需要一個(gè)字符串(或任何類型的數(shù)據(jù))作為參數(shù),這就是創(chuàng)建散列字符串(或數(shù)據(jù))所需的全部內(nèi)容。然而,作為旁注,為了提高算法的安全性,他們采用其他參數(shù),例如鹽。但為了簡單起見,可以安全地忽略這一點(diǎn)。一旦獲得散列數(shù)據(jù),就不可能將其恢復(fù)到實(shí)際狀態(tài)(未散列),因?yàn)檫@會違背對其進(jìn)行散列的目的。
另一方面,加密是雙向的。與散列一樣,它的目的是打亂數(shù)據(jù),以便沒有人可以讀取或理解它,但在這種情況下,我們希望恢復(fù)數(shù)據(jù)。為了實(shí)現(xiàn)這一點(diǎn),算法中還有一個(gè)重要的參數(shù)——密鑰!此密鑰用于加密算法(例如 AES)以及要加密的數(shù)據(jù)以創(chuàng)建加密數(shù)據(jù)。然而,在這種情況下,我們可以使用我們使用的密鑰檢索原始數(shù)據(jù)。
TL;DR?- 兩者都有自己的使用場所。使用加密增加了正確處理密鑰的責(zé)任,而散列則消除了這種麻煩,但代價(jià)是無法檢索原始數(shù)據(jù)。
- 2 回答
- 0 關(guān)注
- 162 瀏覽
添加回答
舉報(bào)