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