SHA হ্যাশ জেনারেটর
আপনার ব্রাউজারের নেটিভ Web Crypto API ব্যবহার করে যেকোনো টেক্সটের SHA-1, SHA-256, SHA-384 ও SHA-512 হ্যাশ লাইভ তৈরি করুন। কিছুই আপলোড হয় না। সর্বশেষ পর্যালোচনা 2026-06-19.
- SHA-1
—লেগেসি / কেবল ইন্টিগ্রিটি — ক্রিপ্টোগ্রাফিকভাবে ভাঙা (কলিশন), নিরাপত্তার জন্য নয়।- SHA-256
—ফিঙ্গারপ্রিন্ট, চেকসাম ও সিগনেচারের জন্য আধুনিক ডিফল্ট।- SHA-384
—ট্রাঙ্কেটেড SHA-512; কিছু TLS ও সার্টিফিকেট প্রসঙ্গে ব্যবহৃত হয়।- SHA-512
—সবচেয়ে বড় SHA-2 ডাইজেস্ট; 64-বিট CPU-তে SHA-256-এর চেয়ে দ্রুত।
হ্যাশ কীসের জন্য
একটি ক্রিপ্টোগ্রাফিক হ্যাশ যেকোনো ইনপুটকে একটি নির্দিষ্ট-দৈর্ঘ্যের ফিঙ্গারপ্রিন্টে রূপান্তরিত করে। একই ইনপুট সবসময় একই ডাইজেস্ট দেয়, এবং এক-অক্ষরের পরিবর্তনও সম্পূর্ণ ভিন্ন ডাইজেস্ট তৈরি করে — যা হ্যাশকে ফাইল ইন্টিগ্রিটি যাচাই, বিষয়বস্তু তুলনা, ডিডুপ্লিকেশন ও ডিজিটাল সিগনেচারের জন্য আদর্শ করে তোলে। হ্যাশিং একমুখী: আপনি হ্যাশ থেকে মূল টেক্সট ফিরে পেতে পারবেন না।
আমার কোন অ্যালগরিদম ব্যবহার করা উচিত?
| অ্যালগরিদম | ব্যবহার |
|---|---|
| SHA-1 | লেগেসি / কেবল ইন্টিগ্রিটি — ক্রিপ্টোগ্রাফিকভাবে ভাঙা (কলিশন), নিরাপত্তার জন্য নয়। |
| SHA-256 | ফিঙ্গারপ্রিন্ট, চেকসাম ও সিগনেচারের জন্য আধুনিক ডিফল্ট। |
| SHA-384 | ট্রাঙ্কেটেড SHA-512; কিছু TLS ও সার্টিফিকেট প্রসঙ্গে ব্যবহৃত হয়। |
| SHA-512 | সবচেয়ে বড় SHA-2 ডাইজেস্ট; 64-বিট CPU-তে SHA-256-এর চেয়ে দ্রুত। |
নিরাপত্তা-সংবেদনশীল যেকোনো কিছুর জন্য SHA-256 বা তার ওপরে ব্যবহার করুন। SHA-1 ও MD5 ক্রিপ্টোগ্রাফিকভাবে ভাঙা এবং ডেটা সুরক্ষার জন্য এগুলো ব্যবহার করা উচিত নয়। আর মনে রাখবেন: পাসওয়ার্ডের জন্য একটি সল্টেড, ধীর হ্যাশ (bcrypt / scrypt / Argon2) প্রয়োজন, কখনো সাধারণ SHA ডাইজেস্ট নয়।
কোনো হ্যাশকে "ক্রিপ্টোগ্রাফিক" কী করে তোলে
অনেক ফাংশন ডেটা এলোমেলো করে দেয়, কিন্তু SHA-256-এর মতো একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন গাণিতিক নিশ্চয়তার একটি সুনির্দিষ্ট সেট পূরণ করার জন্য প্রকৌশলিত। এগুলো বোঝাই হলো কোনো হ্যাশ সঠিকভাবে ব্যবহার করা এবং এমন কিছুর জন্য এর ওপর আস্থা রাখার মধ্যে পার্থক্য যার জন্য এটি কখনো তৈরিই হয়নি।
- ডিটারমিনিস্টিক। একই ইনপুট সবসময় ঠিক একই ডাইজেস্ট দেয় — যেকোনো মেশিনে, যেকোনো প্রোগ্রামিং ভাষায়, আজ বা দশ বছর পরে। এটিই দুজন মানুষকে পুরো ফাইলের বদলে 64 হেক্স অক্ষর তুলনা করে ফাইল তুলনা করতে দেয়।
- নির্দিষ্ট-আকার আউটপুট। একটি তিন-অক্ষরের শব্দ ও একটি তিন-গিগাবাইটের সিনেমা উভয়ই একই দৈর্ঘ্যে (SHA-256-এর জন্য 256 বিট) হ্যাশ হয়। ইনপুট যেকোনো আকারের হতে পারে; ডাইজেস্ট কখনো বাড়ে না।
- গণনায় দ্রুত। ডাইজেস্ট তৈরি করা সস্তা ও দ্রুত। এটি ইন্টিগ্রিটি যাচাইয়ের জন্য একটি গুণ কিন্তু পাসওয়ার্ড সংরক্ষণের জন্য একটি দায় — এ কারণেই পাসওয়ার্ডের একটি ইচ্ছাকৃতভাবে ধীর ফাংশন প্রয়োজন, যেমন উপরে উল্লেখ করা হয়েছে।
- প্রি-ইমেজ রেজিস্ট্যান্স (একমুখী)। কেবল একটি ডাইজেস্ট দেওয়া হলে, এমন কোনো ইনপুট খুঁজে পাওয়া গণনাগতভাবে অসম্ভব যা তা তৈরি করে। আপনি কোনো মানকে তার উৎসে ফিরে "আন-হ্যাশ" করতে পারবেন না — কোনো ডিক্রিপ্ট বোতাম নেই, কারণ কখনো কিছু এনক্রিপ্টই হয়নি।
- সেকেন্ড-প্রি-ইমেজ রেজিস্ট্যান্স। একটি নির্দিষ্ট ফাইল দেওয়া হলে, একই ডাইজেস্টসহ একটি ভিন্ন ফাইল বানানো অসম্ভব — তাই কোনো আক্রমণকারী কোনো ডাউনলোডকে নীরবে একটি বিকৃত সংস্করণ দিয়ে বদলে দিতে পারে না যা এখনো প্রকাশিত হ্যাশের সঙ্গে মেলে।
- কলিশন রেজিস্ট্যান্স। এমন কোনো দুটি ভিন্ন ইনপুট খুঁজে পাওয়া অসম্ভব যা একই ডাইজেস্ট শেয়ার করে। এটিই সেই গুণ যা MD5 ও SHA-1-এর জন্য ভেঙে গেছে (নিচে দেখুন)।
- অ্যাভালাঞ্চ প্রভাব। ইনপুটের একটি বিট উল্টে দিন এবং আউটপুটের প্রায় অর্ধেক বিটও কোনো দৃশ্যমান প্যাটার্ন ছাড়াই উল্টে যায়। "cat" ও "cot" সম্পূর্ণ অসম্পর্কিত ডাইজেস্ট দেয়, তাই হ্যাশ দুটি ইনপুট কতটা একরকম ছিল সে সম্পর্কে কিছুই ফাঁস করে না।
লক্ষ করুন: অ্যাভালাঞ্চ প্রভাব একটি ডিজাইন লক্ষ্য যা হ্যাশকে এলোমেলো দেখায়; প্রি-ইমেজ, সেকেন্ড-প্রি-ইমেজ ও কলিশন রেজিস্ট্যান্স হলো সেই তিনটি আনুষ্ঠানিক নিরাপত্তা গুণ যেগুলোর বিরুদ্ধে ক্রিপ্টোগ্রাফাররা আসলে প্রমাণ দেন।
এক নজরে ডাইজেস্ট আকার
"SHA"-এর পরের সংখ্যাটি বিটে ডাইজেস্ট দৈর্ঘ্য। যেহেতু প্রতিটি হেক্সাডেসিমাল অক্ষর 4 বিট এনকোড করে, হেক্স স্ট্রিং সবসময় বিট দৈর্ঘ্যকে চার দিয়ে ভাগ করার সমান — কোন অ্যালগরিদম কোনো হ্যাশ তৈরি করেছে তা কেবল অক্ষর গুনে চেনার একটি দ্রুত উপায়।
| অ্যালগরিদম | ডাইজেস্ট (বিট) | হেক্স অক্ষর | বাইট |
|---|---|---|---|
| MD5 (ভাঙা) | 128 | 32 | 16 |
| SHA-1 (ভাঙা) | 160 | 40 | 20 |
| SHA-224 | 224 | 56 | 28 |
| SHA-256 | 256 | 64 | 32 |
| SHA-384 | 384 | 96 | 48 |
| SHA-512 | 512 | 128 | 64 |
SHA-এর সংক্ষিপ্ত ইতিহাস
সিকিওর হ্যাশ অ্যালগরিদম পরিবার মার্কিন জাতীয় মান ও প্রযুক্তি ইনস্টিটিউট (NIST) দ্বারা প্রকাশিত হয়, এবং এই সময়রেখা ব্যাখ্যা করে কেন কিছু সদস্য বিশ্বস্ত এবং অন্যরা অবসরপ্রাপ্ত:
- MD5 (1991)। Ronald Rivest দ্বারা ডিজাইন করা এবং 1992 সালে
RFC 1321হিসেবে প্রকাশিত। একটি 128-বিট ডাইজেস্ট যা 1990-এর দশকের কর্মীঘোড়া ছিল — এবং এখন পুরোপুরি ভাঙা। - SHA-0 (1993)। মূল "SHA", যা
FIPS 180-এ প্রকাশিত হয়, একটি উল্লেখযোগ্য ত্রুটি পাওয়ার পর NSA দ্বারা প্রায় তৎক্ষণাৎ প্রত্যাহার করা হয়। - SHA-1 (1995)। প্যাচ করা প্রতিস্থাপন (
FIPS 180-1), 160 বিট। এটি আক্রমণের শিকার হওয়ার আগে TLS সার্টিফিকেট, Git ও সফটওয়্যার সাইনিং-এ সর্বব্যাপী হয়ে ওঠে। - SHA-2 (2001)। বর্তমান মান পরিবার — SHA-224, SHA-256, SHA-384 ও SHA-512
(
FIPS 180-2)। এখনো নিরাপদ বলে বিবেচিত এবং আজকের ডিফল্ট পছন্দ। - SHA-3 / Keccak (2015)। 2012 সালে একটি সর্বজনীন NIST প্রতিযোগিতা জিতে
FIPS 202হিসেবে মানকীকৃত হয়। গুরুত্বপূর্ণভাবে এটি MD5/SHA-1/SHA-2-এর Merkle–Damgård গঠনের বদলে একটি সম্পূর্ণ ভিন্ন অভ্যন্তরীণ ডিজাইন (একটি "স্পঞ্জ") ব্যবহার করে, তাই এক পরিবারের ওপর আক্রমণ অন্যটিতে প্রযোজ্য হয় না।
এই সংখ্যাগুলো আসলে কত বড়?
"অসম্ভব"-এর মতো নিরাপত্তা দাবি অনুসন্ধান-স্থানের বিশাল আকারের ওপর নির্ভর করে। বার্থডে প্যারাডক্স-এর কারণে, কোনো n-বিট হ্যাশে কোনো কলিশন খুঁজে পেতে প্রায় 2n/2 প্রচেষ্টা লাগে — তাই কলিশন রেজিস্ট্যান্স কার্যত ডাইজেস্ট দৈর্ঘ্যের অর্ধেক। SHA-256-এর জন্য এটি প্রায় 2128 অপারেশন: একটি সংখ্যা যা এ পর্যন্ত তৈরি হওয়া প্রতিটি কম্পিউটার মহাবিশ্বের জীবনকালে সম্পন্ন করতে পারার চেয়ে বহু বড়। এই মার্জিনই কারণ যে একটি 256-বিট ডাইজেস্ট নিকট ভবিষ্যতের জন্য স্বস্তিদায়ক, যেখানে একটি 160-বিট (SHA-1) আর নয়।
যখন হ্যাশ ভাঙে: কলিশন অ্যাটাক
"ভাঙা" কোনো অলঙ্কার নয় — এটি নির্দিষ্ট, প্রকাশিত আক্রমণগুলোকে নির্দেশ করে যেগুলো আসল কলিশন খুঁজে পেয়েছিল:
- MD5 — 2004। Xiaoyun Wang ও সহকর্মীরা ব্যবহারিক কলিশন প্রদর্শন করেন, যা একটি নিরাপত্তা প্রিমিটিভ হিসেবে MD5-এর জীবন শেষ করে দেয়।
- MD5 — বাস্তবে অপব্যবহার, 2012। Flame গুপ্তচর ম্যালওয়্যার একটি Microsoft কোড-সাইনিং সার্টিফিকেট জাল করতে এবং নিজেকে একটি বৈধ Windows Update হিসেবে ছদ্মবেশ ধরতে একটি চোজেন-প্রিফিক্স MD5 কলিশন ব্যবহার করে — এটি একটি পাঠ্যপুস্তকীয় উদাহরণ যে একটি ভাঙা হ্যাশ বিপজ্জনক, একাডেমিক নয়।
- SHA-1 — "SHAttered", ফেব্রুয়ারি 2017। Google ও CWI Amsterdam-এর গবেষকরা একই SHA-1 হ্যাশসহ দুটি ভিন্ন PDF ফাইল তৈরি করেন, প্রথম ব্যবহারিক কলিশন, প্রায় 263 গণনার খরচে। আরও শক্তিশালী একটি চোজেন-প্রিফিক্স কলিশন 2020 সালে আসে।
- SHA-1 — আনুষ্ঠানিকভাবে অবসরপ্রাপ্ত। ডিসেম্বর 2022-তে NIST ঘোষণা করে যে এটি SHA-1-কে সমস্ত ব্যবহার থেকে 31 ডিসেম্বর 2030-এর মধ্যে সরিয়ে দেবে, সবাইকে SHA-2 বা SHA-3-এর দিকে নির্দেশ করে।
MD5 ও SHA-1 উভয়ই এখনো আকস্মিক দূষণ ধরার জন্য স্থিতিশীল, উপযোগী ফিঙ্গারপ্রিন্ট তৈরি করে — কিন্তু যেহেতু একজন আক্রমণকারী কলিশন বানাতে পারে, যখনই কোনো প্রতিপক্ষ জড়িত থাকতে পারে তখন এগুলোর কোনোটির ওপরই আস্থা রাখা যায় না।
লেংথ এক্সটেনশন, এবং HMAC কেন বিদ্যমান
MD5, SHA-1 ও SHA-2 সবাই তাদের ডাইজেস্ট Merkle–Damgård গঠন দিয়ে তৈরি করে, বার্তাটিকে
ব্লক-বাই-ব্লক প্রক্রিয়া করে। এর একটি পার্শ্বপ্রতিক্রিয়া হলো লেংথ-এক্সটেনশন অ্যাটাক: যদি আপনি
সরলভাবে কোনো বার্তা hash(secret + message) দিয়ে প্রমাণীকরণ করেন, তবে সেই ডাইজেস্ট দেখা
কেউ অতিরিক্ত ডেটা যুক্ত করে দীর্ঘ বার্তার জন্য একটি বৈধ হ্যাশ গণনা করতে পারে — কখনো সিক্রেট না জেনেই।
এ কারণেই আপনার কখনো নিজের কিড হ্যাশ বানানো উচিত নয়। HMAC ব্যবহার করুন (যা
কি-কে নেস্ট করে এবং নিরাপদ), অথবা SHA-3, যার স্পঞ্জ গঠন প্রথম থেকেই দুর্বল নয়।
SHA-2 সদস্যদের মধ্যে, ট্রাঙ্কেটেড ভ্যারিয়েন্ট SHA-384 ও SHA-512/256-ও লেংথ এক্সটেনশন প্রতিরোধ করে,
যেখানে SHA-256 ও SHA-512 করে না।
হ্যাশ আসলে কীসের জন্য ব্যবহৃত হয়
সুস্পষ্ট "একটি ডাউনলোড যাচাই"-এর বাইরে, ক্রিপ্টোগ্রাফিক হ্যাশিং নীরবে আধুনিক কম্পিউটিংয়ের একটি বিরাট পরিমাণকে ভিত্তি দেয়:
- ফাইল ইন্টিগ্রিটি ও চেকসাম — প্রকাশকরা কোনো ডাউনলোডের পাশে একটি SHA-256 পোস্ট করেন যাতে আপনি নিশ্চিত করতে পারেন আপনি যে বাইট পেয়েছেন তা-ই তারা পাঠিয়েছেন।
- ডিজিটাল সিগনেচার — আপনি কোনো নথির সংক্ষিপ্ত হ্যাশে স্বাক্ষর করেন, পুরোটায় নয়, এটিই বড় ফাইলে স্বাক্ষর করা দ্রুত করে তোলে।
- মেসেজ অথেন্টিকেশন (HMAC) — একটি শেয়ার করা কি ব্যবহার করে প্রমাণ করা যে বার্তাটি আপনি যার কাছ থেকে ভাবেন তার কাছ থেকেই এসেছে এবং পরিবর্তিত হয়নি।
- পাসওয়ার্ড সংরক্ষণ — একটি ইচ্ছাকৃতভাবে ধীর কি-ডেরিভেশন ফাংশন ও একটি সল্ট (bcrypt / scrypt / Argon2)-এর মাধ্যমে, কখনো খালি SHA দিয়ে নয়।
- ডিডুপ্লিকেশন — একই বিষয়বস্তু একইভাবে হ্যাশ হয়, তাই কোনো ব্যাকআপ বা স্টোরেজ সিস্টেম কেবল একটি কপি রাখতে পারে।
- কন্টেন্ট অ্যাড্রেসিং — Git প্রতিটি কমিট ও ফাইলকে তার হ্যাশ দিয়ে নাম দেয় (ঐতিহাসিকভাবে SHA-1, এখন SHA-256-এর দিকে স্থানান্তরিত হচ্ছে), এবং IPFS বিষয়বস্তুকে তার ডাইজেস্ট দিয়ে অ্যাড্রেস করে যাতে অ্যাড্রেসটিই ইন্টিগ্রিটি যাচাই হয়।
- প্রুফ-অফ-ওয়ার্ক — Bitcoin মাইনাররা কোনো টার্গেটের নিচের একটি ডাইজেস্ট খুঁজতে একটি ব্লক হেডারকে বারবার হ্যাশ করে (ডাবল SHA-256 দিয়ে); অ্যাভালাঞ্চ প্রভাবই সেই অনুসন্ধানকে ন্যায্য ও অননুমেয় করে তোলে।
- কমিটমেন্ট স্কিম — কোনো পছন্দ লক করতে এখন
hash(value)প্রকাশ করুন, এবং পরে মানটি প্রকাশ করে প্রমাণ করুন যে আপনি মন বদলাননি।
সল্ট, রেইনবো টেবিল ও পেপার
একটি রেইনবো টেবিল হলো একটি বিশাল প্রাক-গণিত লুকআপ যা সল্ট-বিহীন হ্যাশকে প্রায়
তৎক্ষণাৎ উল্টে দেয় — তাই যদি কোনো সাইট সাধারণ SHA-256(password) সংরক্ষণ করে, তবে একটি চুরি
করা ডেটাবেস মিনিটের মধ্যে ক্র্যাক করা যায়। একটি সল্ট এটিকে ব্যর্থ করে: হ্যাশিংয়ের
আগে প্রতিটি পাসওয়ার্ডে মিশ্রিত একটি অনন্য এলোমেলো মানের অর্থ হলো একই পাসওয়ার্ডের দুই ব্যবহারকারী
ভিন্ন ডাইজেস্ট পায়, এবং একটি প্রাক-গণিত টেবিলকে প্রতিটি সল্টের জন্য পুনর্নির্মাণ করতে হবে — যা অসম্ভব।
সল্ট হ্যাশের সঙ্গে সংরক্ষিত হয় এবং এটি গোপনীয় নয়। একটি পেপার আরও এক ধাপ
এগিয়ে যায়: একটি একক গোপন মান যা ডেটাবেসের বাইরে (অ্যাপ্লিকেশন কনফিগ বা কোনো হার্ডওয়্যার
মডিউলে) রাখা হয় এবং তাতেও মিশ্রিত হয়, যাতে কেবল ডেটাবেস চুরি করা আক্রমণকারীও পাসওয়ার্ড
অনুমান যাচাই করতে না পারে। এই স্তরযুক্ত প্রতিরক্ষাই একটি আসল লগইন সিস্টেম ব্যবহার করে — এবং কারণ যে
পাসওয়ার্ডের জন্য একটি সাধারণ SHA ডাইজেস্ট কখনোই যথেষ্ট নয়।
চেকসাম ক্রিপ্টোগ্রাফিক হ্যাশ নয়
দুটি একরকম দেখতে ধারণা আলাদা করা উপযোগী। CRC32-এর মতো একটি চেকসাম আকস্মিক দূষণ ধরার জন্য তৈরি — কোনো কোলাহলপূর্ণ নেটওয়ার্কে একটি উল্টে যাওয়া বিট — এবং
এটি সেই কাজ সস্তায় করে। কিন্তু CRC32 রৈখিক ও তুচ্ছভাবে বিপরীতমুখী: একজন আক্রমণকারী কোনো ফাইল বদলে
একটি পুরোপুরি বৈধ CRC পুনরায় গণনা করতে পারে, তাই এটি শূন্য টেম্পার প্রতিরোধ
দেয়। যখন আপনাকে ইচ্ছাকৃত পরিবর্তন শনাক্ত করতে হয়, তখন আপনার SHA-256-এর মতো একটি
ক্রিপ্টোগ্রাফিক হ্যাশ প্রয়োজন, কোনো চেকসাম নয়। এই টুলটি আপনার ব্রাউজারের অন্তর্নির্মিত Web
Crypto API (crypto.subtle.digest)-এ চলে, যা ইচ্ছাকৃতভাবে কেবল SHA-1, SHA-256, SHA-384
ও SHA-512 দেয় — এবং এর ব্যবহার নিরুৎসাহিত করতে MD5-কে ইচ্ছাকৃতভাবে বাদ দেয়।
হ্যাশিং, এনকোডিং ও এনক্রিপশন — তিনটি ভিন্ন জিনিস
এই তিনটি শব্দ ক্রমাগত একে অপরের সঙ্গে গুলিয়ে যায়, এবং এই বিভ্রান্তি আসল বাগ তৈরি করে। এগুলো বিনিময়যোগ্য নয়:
- হ্যাশিং একমুখী ও ডিটারমিনিস্টিক। আপনি ডেটা থেকে একটি ডাইজেস্ট তৈরি করতে পারেন, কিন্তু ডাইজেস্ট থেকে ডেটা ফিরে পেতে পারেন না। এর উদ্দেশ্য যাচাই করা, সংরক্ষণ করা বা লুকানো নয়। "password"-এর একটি SHA-256 হ্যাশ সবার জন্য একই এবং কিছুই প্রকাশ করে না — কিন্তু এটি উল্টানোও যায় না।
- এনকোডিং (যেমন Base64 বা URL-এনকোডিং) নিরাপদ পরিবহনের জন্য একটি বিপরীতমুখী রূপান্তর — যে কেউ এটি ডিকোড করতে পারে। এটি কোনো গোপনীয়তা দেয় না; এটি কেবল ডেটাকে একটি ভিন্ন অক্ষর-সেটে পুনরায় প্যাক করে।
- এনক্রিপশন কি দিয়ে বিপরীতমুখী। এটি সেই কি ছাড়া যে কারও কাছ থেকে ডেটা গোপন রাখতে ডিজাইন করা, এবং একই প্লেইনটেক্সট ঠিকঠাক ফিরে ডিক্রিপ্ট করা যায়। তিনটির মধ্যে কেবল এটিই গোপনীয়তা রক্ষা করার জন্য।
তাই কেউ যদি বলে যে তারা "ক্রেডিট-কার্ড নম্বর হ্যাশ করেছে যাতে তা এনক্রিপ্টেড হয়ে যায়," তবে তারা একটি শ্রেণী-ভুল করেছে: একটি হ্যাশ এনক্রিপশন নয় এবং এটি ডিক্রিপ্ট করা যায় না। কোনো কিছু না বদলানোর নিশ্চিত করতে হ্যাশিং, কোনো টেক্সট চ্যানেলের মধ্য দিয়ে ডেটা নিরাপদে সরাতে এনকোডিং, এবং যখন আপনাকে সত্যিই তা গোপন রাখতে হয় তখন এনক্রিপশন ব্যবহার করুন।
কোনো ডাউনলোড তার হ্যাশ দিয়ে কীভাবে যাচাই করবেন
এই টুলের সবচেয়ে সাধারণ দৈনন্দিন ব্যবহার হলো যাচাই করা যে আপনি যে ফাইল ডাউনলোড করেছেন তা আসল ও অক্ষত। অনেক প্রকল্প তাদের ইনস্টলার ও রিলিজের SHA-256 প্রকাশ করে ঠিক এ কারণেই যাতে আপনি তা করতে পারেন:
- প্রকাশক দ্বারা ডাউনলোডের পাশে পোস্ট করা অফিসিয়াল হ্যাশটি খুঁজুন (প্রায়ই "SHA-256" বা "checksum" হিসেবে চিহ্নিত)।
- আপনি আসলে যে ফাইলটি পেয়েছেন তার SHA-256 গণনা করুন — কমান্ড লাইনে
shasum -a 256 file(macOS / Linux) বাcertutil -hashfile file SHA256(Windows) দিয়ে, অথবা উপরের টুলে টেক্সট পেস্ট করে। - দুটি স্ট্রিং তুলনা করুন। যদি তারা ঠিকঠাক মেলে, অক্ষরে-অক্ষরে, তবে আপনার কপিটি প্রকাশক যা প্রকাশ করেছে তার সঙ্গে বিট-বাই-বিট অভিন্ন।
একটিমাত্র অমিল অক্ষরের অর্থ ফাইলটি ভিন্ন — এটি পরিবহনে দূষিত হয়ে থাকতে পারে, বা এতে টেম্পার করা হয়ে থাকতে পারে। অ্যাভালাঞ্চ প্রভাবের কারণে, এক-বাইটের পরিবর্তনও সম্পূর্ণ ভিন্ন ডাইজেস্ট তৈরি করে, তাই এই যাচাই একই সঙ্গে সহজ ও শক্তিশালী। শুধু সীমাটি মনে রাখুন: একটি চেকসাম কেবল প্রমাণ করে ফাইলটি প্রকাশিত হ্যাশের সঙ্গে মেলে — আপনাকে এখনো বিশ্বাস করতে হবে যে হ্যাশটি নিজেই একটি বৈধ উৎস থেকে একটি নিরাপদ (HTTPS) পৃষ্ঠায় এসেছে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
- হ্যাশ কি এনক্রিপশনের মতোই?
- না। একটি ক্রিপ্টোগ্রাফিক হ্যাশ একমুখী: এটি যেকোনো ইনপুটকে একটি নির্দিষ্ট-আকারের ফিঙ্গারপ্রিন্টে রূপান্তরিত করে যা আবার মূলে ফিরিয়ে নেওয়া যায় না। এনক্রিপশন দ্বিমুখী (এটি কি দিয়ে ডিক্রিপ্ট করা যায়)। ইন্টিগ্রিটি যাচাই ও ফিঙ্গারপ্রিন্টের জন্য হ্যাশিং ব্যবহার করুন, পুনরুদ্ধারযোগ্য ডেটা "লুকানোর" জন্য নয়।
- আমি কি এটি দিয়ে পাসওয়ার্ড সংরক্ষণ করতে পারি?
- সাধারণ SHA হ্যাশ দিয়ে নয়। পাসওয়ার্ড অবশ্যই একটি ধীর, সল্টেড পাসওয়ার্ড-হ্যাশিং ফাংশন যেমন bcrypt, scrypt বা Argon2 দিয়ে সংরক্ষণ করতে হবে — কখনো খালি SHA-256 বা (আরও খারাপ) MD5 দিয়ে নয়। দ্রুত হ্যাশ দ্রুত হওয়ার জন্যই তৈরি, যা পাসওয়ার্ডের জন্য ঠিক তা-ই যা আপনি চান না।
- এখানে MD5 কেন নেই?
- MD5 (এবং SHA-1) ক্রিপ্টোগ্রাফিকভাবে ভাঙা — ব্যবহারিক কলিশন অ্যাটাক বিদ্যমান — তাই এগুলো নিরাপত্তার জন্য ব্যবহার করা উচিত নয়। আমরা SHA-256 ও তার ওপরের দিকে মনোযোগ দিই। SHA-1 কেবল লেগেসি ইন্টিগ্রিটি তুলনার জন্য অন্তর্ভুক্ত, স্পষ্টভাবে চিহ্নিত।
- আমার ইনপুট কি ব্রাউজারের বাইরে যায়?
- না। হ্যাশিং আপনার ব্রাউজারের অন্তর্নির্মিত Web Crypto API ব্যবহার করে, তাই টেক্সটটি স্থানীয়ভাবে প্রক্রিয়া হয় এবং কখনো আপলোড হয় না। লোড হওয়ার পরে এটি অফলাইনেও কাজ করে।