在網上查找資料時,
發現了Hash function(雜湊函式),
了解一下它的重要性。
雜湊演算法也被用來加密存在資料庫中的密碼(password)字串,由於雜湊演算法所計算出來的雜湊值(Hash Value)具有不可逆(無法逆向演算回原本的數值)的性質,因此可有效的保護密碼。維基百科
大家應該都有玩過爬格子,
它就像好不容易爬完格子後,
竟然還要再解謎才能得到寶藏。
你想像一下,
你拿到一把鑰匙"Key"
打開了一個通往神祕通道的門,
經過一連串的路(雜湊函式"Hash function"),
你會得到一組謎語(得到雜湊值"Hash value"),
再利用祖傳字典(雜湊表"Hash table")
得到寶藏真正的位置,
再拿到寶藏(資料"Value")。
而中間經過的路,
你沒有上帝視角,
不知道整個爬格子的圖長怎樣,
沒辦法看到每條路怎麼走,
而且是摸黑的,
所以你不會知道你中間到底轉了幾個彎,
也因此不可逆(回不去了,瑞凡!)
這也是Hash function會被用來保護密碼(我們的寶藏)的原因。
所以Hash雖然翻譯奇怪了點、難懂了點,
但卻非常有趣而且重要喔!
Ruby
Hash