Hash
模組化雜湊混淆
我正在嘗試使用模運算符學習基本雜湊,但有點困惑。在我正在閱讀的文本中,它說模運算符可用於接受任何長度的輸入並返回固定大小的輸出。但是,取 1mod11 = 1 和 21mod11 = 10。第一個等式產生一個一位數,第二個等式產生一個兩位數,它如何返回一個固定大小的輸出?是的,一個微不足道的問題,但它只是不適合我——有人願意解釋嗎?
您的範例(使用 mod 11)的位數是固定的,因為它永遠不會超過 2 位數。如果您不喜歡 1 位或 2 位數字,您可以在 1 位數字前加上前導 0。如果你把所有的數字都取為 10,它們都是 1 位數。
其他思考方式
輸出總是可以表示為 $ n $ 或更少的數字。
輸出是一組有限值中的一個,例如 0、1、2、3、…、10。