[Java] 請問SHA-1 Hash出來的Value係唔係永遠一樣?

我睇緊呢頁:http://www.evolt.org/node/60122

其實我有幾個問題:
1. SHA-1 hash出來的Value,在同一電腦係唔係永遠一樣?
2. SHA-1 hash出來的Value,在不同電腦係唔係永遠一樣?

其實我寫緊個Web application,而當中係有個Login system的。以前我就用MySQL的password() function去Hash user input的password(係唔係咁叫呢?)(MySQL話唔好用呢個做Encryption...),再Compare database內的Password(又係一早Hash左再Insert入去)。

而今次我想用JavaDB(Apache Derby),但係個Database就無左password()呢個Function。我而家就搵到個用SHA-1做Hashing的Example,但係就唔肯定以上既問題。

順便想問下,出面的System係點樣做Password認證?都係好似上面個Example咁,用Algorithm hash左個Input password、用Hashed value做Comparison?

感謝。

原帖由 GraphiteCube 於 2009-3-26 00:07 發表
我睇緊呢頁:http://www.evolt.org/node/60122

其實我有幾個問題:
1. SHA-1 hash出來的Value,在同一電腦係唔係永遠一樣?
2. SHA-1 hash出來的Value,在不同電腦係唔係永遠一樣?

其實我寫緊個Web application,而當中係有個Lo ...


Short answer: 同一樣input, output係永遠一樣
Long answer: 但係實際生活中使用SHA-1, 唔單止係個algorithm 咁簡單, 重要考慮 padding format (典型係PKCS5) , hash value 既encoding (Base64, UUEncode, Hex) 等. 要全部因素一樣先會有同樣輸出.

TOP