ਫਾਉਲਰ-ਨੋਲ-ਵੋ FNV1-64 ਹੈਸ਼ ਕੋਡ ਕੈਲਕੁਲੇਟਰ
ਪ੍ਰਕਾਸ਼ਿਤ: 19 ਮਾਰਚ 2025 8:56:43 ਬਾ.ਦੁ. UTC
ਹੈਸ਼ ਕੋਡ ਕੈਲਕੁਲੇਟਰ ਜੋ ਟੈਕਸਟ ਇਨਪੁਟ ਜਾਂ ਫਾਈਲ ਅਪਲੋਡ ਦੇ ਅਧਾਰ ਤੇ ਹੈਸ਼ ਕੋਡ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ ਫਾਉਲਰ-ਨੋਲ-ਵੋ 1 64 ਬਿੱਟ (FNV1-64) ਹੈਸ਼ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।Fowler-Noll-Vo FNV1-64 Hash Code Calculator
FNV-1 64-ਬਿੱਟ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਫਾਉਲਰ-ਨੋਲ-ਵੋ (FNV) ਹੈਸ਼ ਫੰਕਸ਼ਨਾਂ ਦੇ ਪਰਿਵਾਰ ਦਾ ਹਿੱਸਾ ਹੈ, ਜੋ ਹੈਸ਼ ਮੁੱਲਾਂ ਦੀ ਚੰਗੀ ਵੰਡ ਨੂੰ ਬਣਾਈ ਰੱਖਦੇ ਹੋਏ ਤੇਜ਼ ਹੈਸ਼ਿੰਗ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਹੈਸ਼ ਟੇਬਲ, ਚੈੱਕਸਮ ਅਤੇ ਡੇਟਾ ਲੁੱਕਅੱਪ ਵਰਗੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਇੱਕ 64 ਬਿੱਟ (8 ਬਾਈਟ) ਹੈਸ਼ ਕੋਡ ਪੈਦਾ ਕਰਦਾ ਹੈ, ਜਿਸਨੂੰ ਅਕਸਰ 16 ਅੰਕਾਂ ਦੇ ਹੈਕਸਾਡੈਸੀਮਲ ਨੰਬਰ ਵਜੋਂ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ।
ਪੂਰਾ ਖੁਲਾਸਾ: ਮੈਂ ਇਸ ਪੰਨੇ 'ਤੇ ਵਰਤੇ ਗਏ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਦੇ ਖਾਸ ਲਾਗੂਕਰਨ ਨੂੰ ਨਹੀਂ ਲਿਖਿਆ। ਇਹ PHP ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਦੇ ਨਾਲ ਸ਼ਾਮਲ ਇੱਕ ਮਿਆਰੀ ਫੰਕਸ਼ਨ ਹੈ। ਮੈਂ ਸਿਰਫ਼ ਵੈੱਬ ਇੰਟਰਫੇਸ ਨੂੰ ਇੱਥੇ ਸਹੂਲਤ ਲਈ ਜਨਤਕ ਤੌਰ 'ਤੇ ਉਪਲਬਧ ਕਰਵਾਉਣ ਲਈ ਬਣਾਇਆ ਹੈ।
Fowler-Noll-Vo FNV-1 64 ਬਿਟ ਹੈਸ਼ ਅਲਗੋਰਿਦਮ ਬਾਰੇ
ਮੈਂ ਗਣਿਤਕ ਵਿਦਵਾਨ ਨਹੀਂ ਹਾਂ, ਪਰ ਮੈਂ ਇਸ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਨੂੰ ਇੱਕ ਐਨਾਲੋਜੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਮਝਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਾਂਗਾ, ਜਿਸਨੂੰ ਮੇਰੇ ਸਮੇਤ ਹੋਰ ਗਣਿਤ ਬਾਰੇ ਜਾਣਕਾਰੀ ਨਹੀਂ ਰੱਖਣ ਵਾਲੇ ਲੋਕ ਸਮਝ ਸਕਦੇ ਹਨ। ਜੇ ਤੁਸੀਂ ਵਿਗਿਆਨਿਕ ਤੌਰ 'ਤੇ ਸਹੀ, ਡਰਾਉਣਾ-ਗਣਿਤ ਵਿਆਖਿਆ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਮੈਂ ਯਕੀਨਨ ਸਮਝਦਾ ਹਾਂ ਕਿ ਤੁਸੀਂ ਉਹ ਕਿਤੇ ਹੋਰ ਲੱਭ ਸਕਦੇ ਹੋ ;-)
ਸਭ ਤੋਂ ਪਹਿਲਾਂ, ਆਓ FNV-1 ਅਲਗੋਰਿਦਮ ਨੂੰ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਸਮੂਥੀ ਬਣਾਉਣ ਦੀ ਵਿਧੀ ਵਾਂਗ ਸੋਚੀਏ। ਹਰ ਇਕ ਸਮੱਗਰੀ ਜਿਸਨੂੰ ਤੁਸੀਂ ਸ਼ਾਮਿਲ ਕਰਦੇ ਹੋ (ਜਿਵੇਂ ਕਿ ਫਲ, ਦੁੱਧ ਜਾਂ ਸ਼ਹਿਦ) ਡਾਟਾ ਦੇ ਟੁਕੜੇ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ - ਜਿਵੇਂ ਕਿ ਅੱਖਰ, ਨੰਬਰ ਜਾਂ ਇੱਥੇ ਤੱਕ ਇੱਕ ਪੂਰਾ ਫਾਈਲ।
ਹੁਣ, ਟੀਚਾ ਇਹ ਹੈ ਕਿ ਇਹ ਸਮੱਗਰੀਆਂ ਨੂੰ ਇੱਕ ਖਾਸ ਤਰੀਕੇ ਨਾਲ ਮਿਲਾਇਆ ਜਾਵੇ ਤਾਂ ਕਿ ਵਿਧੀ ਵਿੱਚ ਹਾਲਕਾ ਜੇਹਾ ਬਦਲਾਅ (ਜਿਵੇਂ ਇੱਕ ਵਾਧੂ ਬਲੂਬੇਰੀ ਸ਼ਾਮਿਲ ਕਰਨਾ) ਸਮੂਥੀ ਦਾ ਸੁਆਦ ਬਿਲਕੁਲ ਵੱਖਰਾ ਬਣਾ ਦੇਵੇ। ਇਹ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਕੰਮ ਕਰਦੇ ਹਨ - ਉਹ ਹਰ ਇੱਕ ਵਿਲੱਖਣ ਸਮੱਗਰੀ ਦੇ ਸੈਟ (ਜਾਂ ਇਨਪੁਟ ਡਾਟਾ) ਲਈ ਇੱਕ ਵਿਲੱਖਣ "ਸੁਆਦ" (ਜਾਂ ਹੈਸ਼ ਮੁੱਲ) ਬਣਾਉਂਦੇ ਹਨ।
FNV-1 ਅਲਗੋਰਿਦਮ ਇਹ ਕਿਵੇਂ ਕਰਦਾ ਹੈ ਇਹ ਇੱਕ ਬਹੁ-ਕਦਮ ਪ੍ਰਕਿਰਿਆ ਹੈ:
ਕਦਮ 1: ਇੱਕ ਬੇਸ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ (ਆਫਸੈਟ ਬੇਸ)
ਇਸਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਸੋਚੋ ਕਿ ਤੁਸੀਂ ਆਪਣੇ ਬਲੈਂਡਰ ਵਿੱਚ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਸਮੂਥੀ ਬੇਸ ਪਾ ਰਹੇ ਹੋ। ਇਹ ਬੇਸ ਹਮੇਸ਼ਾਂ ਉਹੀ ਹੁੰਦੀ ਹੈ, ਚਾਹੇ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਸਮੱਗਰੀ ਨੂੰ ਸ਼ਾਮਿਲ ਕਰੋ। FNV-1 ਵਿੱਚ, ਇਸਨੂੰ "ਆਫਸੈਟ ਬੇਸ" ਕਿਹਾ ਜਾਂਦਾ ਹੈ - ਇਹ ਸਿਰਫ ਇੱਕ ਸ਼ੁਰੂਆਤੀ ਨੰਬਰ ਹੈ।
ਕਦਮ 2: ਸਮੱਗਰੀ ਇੱਕ-ਇੱਕ ਕਰਕੇ ਸ਼ਾਮਿਲ ਕਰੋ (ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ)
ਹੁਣ ਤੁਸੀਂ ਆਪਣੇ ਸਮੱਗਰੀ ਨੂੰ ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਸ਼ਾਮਿਲ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ - ਮੰਨ ਲੋ ਇੱਕ ਸਟਰਾਬੇਰੀ, ਫਿਰ ਇੱਕ ਬਨਾਨਾ, ਫਿਰ ਕੁਝ ਸ਼ਹਿਦ। ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਇੱਕ ਬਾਈਟ ਡਾਟਾ ਦਾ ਪ੍ਰਤਿਨਿਧਿਤਵ ਕਰਦਾ ਹੈ।
ਕਦਮ 3: ਗੁਪਤ ਗੁਣਾ ਕਰਨ ਵਾਲੀ ਨਾਲ ਬਲੈਂਡ ਕਰੋ (FNV ਪ੍ਰਾਈਮ)
ਹਰ ਸਮੱਗਰੀ ਸ਼ਾਮਿਲ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਬਲੈਂਡ ਬਟਨ ਨੂੰ ਦਬਾਉਂਦੇ ਹੋ, ਪਰ ਇੱਥੇ ਇੱਕ ਮੋੜ ਹੈ: ਬਲੈਂਡਰ ਹਰ ਚੀਜ਼ ਨੂੰ ਇੱਕ ਗੁਪਤ "ਜਾਦੂਈ ਨੰਬਰ" ਨਾਲ ਗੁਣਾ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ FNV ਪ੍ਰਾਈਮ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਇਸ ਨਾਲ ਸਾਰੇ ਸਮੱਗਰੀਆਂ ਬਹੁਤ ਅਚੀ ਤਰ੍ਹਾਂ ਮਿਲ ਜਾਂਦੀਆਂ ਹਨ।
ਕਦਮ 4: ਥੋੜਾ ਜਾਦੂ ਸ਼ਾਮਿਲ ਕਰੋ (XOR ਓਪਰੇਸ਼ਨ)
ਅਗਲੀ ਸਮੱਗਰੀ ਸ਼ਾਮਿਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਸੀਂ ਥੋੜਾ ਜਾਦੂਈ ਧੂੜ ਛਿੜਕਦੇ ਹੋ (ਇਹ XOR ਓਪਰੇਸ਼ਨ ਹੈ)। ਇਹ ਸੁਆਦ ਨੂੰ ਅਣਪਛਾਤੇ ਤਰੀਕਿਆਂ ਨਾਲ ਉਲਟਣ ਵਾਂਗ ਹੁੰਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਛੋਟੇ ਬਦਲਾਅ ਵੀ ਵੱਡਾ ਅੰਤਰ ਪੈਦਾ ਕਰਦੇ ਹਨ।
ਕਦਮ 5: ਦੋਹਰਾਓ ਜਦੋਂ ਤੱਕ ਖਤਮ ਨਾ ਹੋ ਜਾਵੇ
ਤੁਸੀਂ ਹਰ ਨਵੀਂ ਸਮੱਗਰੀ ਦੇ ਬਾਅਦ ਬਲੈਂਡਿੰਗ ਅਤੇ ਜਾਦੂ ਛਿੜਕਣਾ ਜਾਰੀ ਰੱਖਦੇ ਹੋ ਜਦ ਤੱਕ ਤੁਸੀਂ ਸਾਰੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕਰ ਲੈਂਦੇ।
ਕਦਮ 6: ਅੰਤਿਮ ਸਮੂਥੀ (ਹੈਸ਼ ਮੁੱਲ)
ਜਦੋਂ ਤੁਸੀਂ ਖਤਮ ਕਰ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਸਮੂਥੀ ਪਾਉਂਦੇ ਹੋ। ਅੰਤਿਮ ਸੁਆਦ (ਹੈਸ਼ ਮੁੱਲ) ਉਸ ਵਿਸ਼ੇਸ਼ ਸਮੱਗਰੀ ਦੇ ਸੰਯੋਜਨ ਲਈ ਵਿਲੱਖਣ ਹੁੰਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਇੱਕ ਵਾਧੂ ਬਲੂਬੇਰੀ ਵੀ ਸ਼ਾਮਿਲ ਕੀਤੀ ਹੁੰਦੀ, ਤਾਂ ਇਹ ਬਿਲਕੁਲ ਵੱਖਰਾ ਸੁਆਦ ਕਰਦਾ।
ਇੱਥੇ ਦਿੱਤੀ ਗਈ ਵਰਜਨ ਮੂਲ FNV-1 64 ਬਿਟ ਵਰਜਨ ਹੈ। ਇੱਕ ਸੁਧਾਰਿਤ FNV-1a 64 ਬਿਟ ਵਰਜਨ ਵੀ ਉਪਲਬਧ ਹੈ: ਫਾਉਲਰ-ਨੋਲ-ਵੋ FNV1a-64 ਹੈਸ਼ ਕੋਡ ਕੈਲਕੁਲੇਟਰ