ToolDeck

SHA-1 হ্যাশ জেনারেটর

যেকোনো টেক্সট থেকে SHA-1 হ্যাশ তৈরি করুন

ইনপুট টেক্সট

স্থানীয়ভাবে চলে · গোপন তথ্য পেস্ট করা নিরাপদ

SHA-1 হ্যাশ

SHA-1 হ্যাশ এখানে দেখা যাবে…

SHA-1 হ্যাশিং কী?

SHA-1 (Secure Hash Algorithm 1) একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন যা যেকোনো ইনপুট থেকে একটি নির্দিষ্ট 160-bit (20-byte) ডাইজেস্ট তৈরি করে। NSA কর্তৃক ডিজাইন করা এবং ১৯৯৫ সালে NIST দ্বারা FIPS PUB 180-1 হিসেবে প্রমিত (পরে RFC 3174-এ নথিভুক্ত), SHA-1 SHA-0 ও MD5-এর চেয়ে শক্তিশালী উত্তরসূরি হিসেবে তৈরি হয়েছিল। অ্যালগরিদমটি ইনপুটকে 512-bit ব্লকে বিভক্ত করে 80 রাউন্ড বিটওয়াইজ অপারেশনের মধ্য দিয়ে প্রক্রিয়া করে এবং একটি 40-অক্ষরের হেক্সাডেসিমাল ফিঙ্গারপ্রিন্ট তৈরি করে, যা এক দশকেরও বেশি সময় ধরে SSL/TLS, PGP, SSH এবং IPsec-এর মেরুদণ্ড হিসেবে কাজ করেছে।

সব ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের মতো SHA-1-ও একটি একমুখী রূপান্তর: ইনপুট থেকে হ্যাশ গণনা করা দ্রুত, কিন্তু শুধুমাত্র হ্যাশ থেকে ইনপুট পুনরুদ্ধার করা ব্যবহারিকভাবে অসম্ভব। ইনপুটে একটি মাত্র বিট পরিবর্তন সম্পূর্ণ আলাদা 160-bit ডাইজেস্ট তৈরি করে — এই বৈশিষ্ট্যকে avalanche effect বলা হয়। SHA-1 যেকোনো আকারের ইনপুটকে একটি নির্দিষ্ট 160-bit আউটপুটে ম্যাপ করে, তাই collision (দুটি ভিন্ন ইনপুট একই হ্যাশ তৈরি করে) গাণিতিকভাবে অবশ্যম্ভাবী। হ্যাশ ফাংশনের নিরাপত্তার দাবি হল এমন collision খুঁজে পেতে প্রায় 2^80 অপারেশন প্রয়োজন হওয়া উচিত।

২০১৭ সালে Google ও CWI Amsterdam SHAttered আক্রমণ প্রকাশ করে, একই ডাইজেস্টযুক্ত দুটি ভিন্ন PDF ফাইল তৈরি করে প্রথম বাস্তবসম্মত SHA-1 collision প্রদর্শন করে। এই আক্রমণে প্রায় 2^63.1 SHA-1 গণনা প্রয়োজন হয়েছিল — তাত্ত্বিক 2^80 সীমার অনেক নিচে। ২০২০ সালে Gaetan Leurent ও Thomas Peyrin একটি chosen-prefix collision আক্রমণ দিয়ে খরচ আরও কমিয়েছেন। ফলে সব প্রধান ব্রাউজার, সার্টিফিকেট কর্তৃপক্ষ এবং মানদণ্ড সংস্থাগুলি ডিজিটাল স্বাক্ষর ও TLS সার্টিফিকেটের জন্য SHA-1 বাতিল করেছে। তবে অ-নিরাপত্তামূলক ব্যবহারে SHA-1 এখনও সক্রিয়: Git অবজেক্ট ID (যদিও Git SHA-256-এ মাইগ্রেট হচ্ছে), লিগ্যাসি HMAC কনস্ট্রাকশন এবং ফাইল ইন্টিগ্রিটি চেকসাম যেখানে প্রতিকূল collision প্রতিরোধ প্রয়োজন নেই।

NIST FIPS 180-4 — Secure Hash Standard →

এই SHA-1 জেনারেটর কেন ব্যবহার করবেন?

কিছু ইনস্টল না করে বা কোড না লিখে তাৎক্ষণিকভাবে SHA-1 হ্যাশ তৈরি করুন। আপনার টেক্সট পেস্ট করুন এবং রিয়েল টাইমে 40-অক্ষরের হেক্স ডাইজেস্ট পান — লিগ্যাসি চেকসাম যাচাই করতে, Git ইন্টার্নাল ডিবাগ করতে বা হ্যাশ-ভিত্তিক ওয়ার্কফ্লো পরীক্ষা করতে কাজে আসে।

তাৎক্ষণিক হ্যাশিং
আপনি টাইপ করার সাথে সাথে আউটপুট আপডেট হয়। কোনো বাটন ক্লিক নেই, কোনো অপেক্ষা নেই — ইনপুট পরিবর্তন করলেই SHA-1 ডাইজেস্ট অক্ষরে অক্ষরে দেখা যায়।
🔒
সম্পূর্ণ গোপনীয় প্রক্রিয়াকরণ
সমস্ত হ্যাশিং Web Crypto API ব্যবহার করে আপনার ব্রাউজারে স্থানীয়ভাবে চলে। আপনার ইনপুট টেক্সট কখনও আপনার ডিভাইস ছেড়ে যায় না এবং কোনো সার্ভারে পাঠানো হয় না।
📋
এক ক্লিকে কপি
একটি ক্লিকে হ্যাশ ক্লিপবোর্ডে কপি করুন। আপনার সিস্টেম যে ফরম্যাট প্রত্যাশা করে তার সাথে মেলাতে লোয়ারকেস ও আপারকেস হেক্স আউটপুটের মধ্যে বদলে নিন।
🔍
কোনো অ্যাকাউন্ট প্রয়োজন নেই
কোনো সাইন-আপ নেই, কোনো লগইন নেই, কোনো ব্যবহারের সীমা নেই। পেজ খুলুন এবং সঙ্গে সঙ্গে হ্যাশিং শুরু করুন। আধুনিক ব্রাউজার সহ যেকোনো ডিভাইসে কাজ করে।

SHA-1-এর ব্যবহারক্ষেত্র

Git ইন্টার্নাল ও ডিবাগিং
Git প্রতিটি অবজেক্ট (commit, tree, blob, tag) SHA-1 হ্যাশ দিয়ে চিহ্নিত করে। Git plumbing কমান্ড ডিবাগ করার সময়, pack ফাইল যাচাই করতে বা কাস্টম Git টুলিং লিখতে, একটি দ্রুত SHA-1 জেনারেটর আপনাকে প্রত্যাশিত মানের বিপরীতে অবজেক্ট ID ক্রস-চেক করতে সাহায্য করে।
লিগ্যাসি সিস্টেম যাচাইকরণ
অনেক পুরনো সিস্টেম, প্যাকেজ রেজিস্ট্রি এবং ফার্মওয়্যার আপডেট মেকানিজম এখনও ডাউনলোডের পাশে SHA-1 চেকসাম প্রকাশ করে। SHA-256 ডাইজেস্ট পাওয়া না গেলে ফাইল ইন্টিগ্রিটি যাচাই করতে SHA-1 হ্যাশ তৈরি ও তুলনা করুন।
Subresource Integrity (SRI)
HTML script ও link ট্যাগের SRI হ্যাশের জন্য sha256 ও sha384 পছন্দনীয় হলেও, কিছু লিগ্যাসি CDN কনফিগারেশন এখনও SHA-1-এর উপর নির্ভর করে। বিদ্যমান SRI অ্যাট্রিবিউট অডিট বা রূপান্তর করতে প্রত্যাশিত ডাইজেস্ট তৈরি করুন।
QA ও রিগ্রেশন টেস্টিং
বড় আউটপুটের সম্পূর্ণ বাইট-বাই-বাইট diff না করে অপ্রত্যাশিত পরিবর্তন শনাক্ত করতে টেস্ট রানের মধ্যে API রেসপন্স, বিল্ড আর্টিফ্যাক্ট বা ডেটাবেস স্ন্যাপশটের SHA-1 হ্যাশ তুলনা করুন।
ডেটা ডিডুপ্লিকেশন
ETL পাইপলাইনে ফাইল কন্টেন্ট বা ডেটা রেকর্ডের SHA-1 হ্যাশ গণনা করে ডুপ্লিকেট চিহ্নিত করুন। 160-bit আউটপুট অ-প্রতিকূল ডিডুপ্লিকেশন পরিস্থিতিতে MD5-এর চেয়ে শক্তিশালী অনন্যতার নিশ্চয়তা দেয়।
শিক্ষা ও গবেষণা
SHA-1 একটি সুপরিচিত অ্যালগরিদম যার বিস্তৃত একাডেমিক সাহিত্য রয়েছে। Merkle-Damgard কনস্ট্রাকশন, মেসেজ শিডিউলিং এবং আউটপুট দৈর্ঘ্য আধুনিক কম্পিউটিং শক্তির তুলনায় খুব ছোট হলে collision প্রতিরোধ কেন ভেঙে পড়ে তা বোঝার জন্য এটি নিয়ে পরীক্ষা-নিরীক্ষা করুন।

SHA-1 বনাম অন্যান্য হ্যাশ অ্যালগরিদম

SHA-1 একটি 160-bit ডাইজেস্ট তৈরি করে — MD5 (128 bit)-এর চেয়ে বড় কিন্তু SHA-2 পরিবারের অ্যালগরিদমগুলির চেয়ে উল্লেখযোগ্যভাবে ছোট। নিচের টেবিলটি প্রতিটি অ্যালগরিদমের ডাইজেস্ট আকার, মানদণ্ড এবং উপযুক্ত ব্যবহারক্ষেত্র তুলনা করে।

অ্যালগরিদমডাইজেস্ট আকারহেক্স দৈর্ঘ্যমানদণ্ডসেরা ব্যবহার
SHA-1160 bits40 hex chars1995 / RFC 3174Deprecated — legacy git commits, old TLS
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
MD5128 bits32 hex chars1992 / RFC 1321Checksums only — broken since 2004
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, alternative to SHA-2
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

SHA-1 কীভাবে কাজ করে

SHA-1 Merkle-Damgard কনস্ট্রাকশন অনুসরণ করে: মেসেজটি প্যাড করা হয়, 512-bit ব্লকে বিভক্ত হয় এবং প্রতিটি ব্লক 80 রাউন্ড বিটওয়াইজ অপারেশনের মধ্য দিয়ে প্রক্রিয়া করা হয় যা ব্লক থেকে প্রাপ্ত মেসেজ শিডিউলের সাথে ইনপুট মিশ্রিত করে। পাঁচটি 32-bit স্টেট ওয়ার্ড (H0 থেকে H4) চলমান হ্যাশ স্টেট বহন করে এবং এই শব্দগুলির চূড়ান্ত সংযোজন 160-bit ডাইজেস্ট তৈরি করে।

Input: "hello world"
SHA-1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
(160 bits = 20 bytes = 40 hex characters)
ধাপবিবরণ
PaddingAppend a 1-bit, then zeros, until message length is 448 mod 512. Append the original length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
ExpansionExpand each 16-word block into 80 words using a left-rotate-by-1 XOR feedback schedule.
CompressionProcess 80 rounds per block using four nonlinear functions (Ch, Parity, Maj, Parity) across rounds 0-19, 20-39, 40-59, and 60-79.
OutputConcatenate the five 32-bit state words (H0-H4) into a 160-bit (20-byte) digest, rendered as 40 hexadecimal characters.

SHA-1 ও MD5-এর মধ্যে মূল পার্থক্য হল স্টেট ওয়ার্ডের সংখ্যা (5 বনাম 4), প্রতি ব্লকে রাউন্ডের সংখ্যা (80 বনাম 64) এবং left-rotate ফিডব্যাকসহ মেসেজ শিডিউলের ব্যবহার। এই পার্থক্যগুলি SHA-1-কে বৃহত্তর আউটপুট (160 বনাম 128 bit) এবং মূলত উচ্চতর নিরাপত্তা মার্জিন দেয়, যদিও উভয় অ্যালগরিদমই এখন collision প্রতিরোধের জন্য দুর্বল বলে বিবেচিত।

কোড উদাহরণ

জনপ্রিয় ভাষা ও পরিবেশে SHA-1 হ্যাশ তৈরির পদ্ধতি। MD5-এর বিপরীতে, SHA-1 ব্রাউজার Web Crypto API-তে পাওয়া যায়, যা ব্রাউজার ও Node.js উভয় পরিবেশে বাহ্যিক লাইব্রেরি ছাড়াই ব্যবহারযোগ্য।

JavaScript (Web Crypto API — browser & Node.js)
// SHA-1 is available in the Web Crypto API
async function sha1(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-1', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha1('hello world')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha1').update('hello world').digest('hex')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
Python
import hashlib

# Basic SHA-1 hash
result = hashlib.sha1(b'hello world').hexdigest()
print(result)  # → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a string (encode to bytes first)
text = 'hello world'
hashlib.sha1(text.encode('utf-8')).hexdigest()
# → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a file in chunks
with open('file.bin', 'rb') as f:
    sha1 = hashlib.sha1()
    for chunk in iter(lambda: f.read(8192), b''):
        sha1.update(chunk)
    print(sha1.hexdigest())
Go
package main

import (
    "crypto/sha1"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha1.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
}
CLI (Linux / macOS)
# Using sha1sum (Linux) or shasum (macOS)
echo -n "hello world" | sha1sum
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# macOS
echo -n "hello world" | shasum -a 1
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# Hash a file
sha1sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl sha1
# → SHA1(stdin)= 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed

প্রায়শই জিজ্ঞাসিত প্রশ্ন

SHA-1 কি এখনও নিরাপদ?
নিরাপত্তা-সংবেদনশীল অ্যাপ্লিকেশনের জন্য SHA-1 নিরাপদ নয়। ২০১৭ সালের SHAttered আক্রমণ বাস্তবসম্মত collision তৈরি প্রদর্শন করেছে এবং ২০২০ সালের chosen-prefix আক্রমণ খরচ আরও কমিয়েছে। ডিজিটাল স্বাক্ষর, TLS সার্টিফিকেট বা যেকোনো পরিস্থিতিতে যেখানে একজন আক্রমণকারী colliding ইনপুট তৈরি করতে পারে, সেখানে SHA-256 বা SHA-3 ব্যবহার করুন। তবে অ-নিরাপত্তামূলক উদ্দেশ্যে যেমন চেকসাম ও ক্যাশ কী যেখানে কোনো আক্রমণকারী ইনপুট নিয়ন্ত্রণ করে না, SHA-1 কার্যকর থাকে।
SHA-1 ও SHA-256-এর মধ্যে পার্থক্য কী?
SHA-1 একটি 160-bit (40-hex-character) ডাইজেস্ট তৈরি করে এবং collision আক্রমণের জন্য দুর্বল। SHA-256 একটি 256-bit (64-hex-character) ডাইজেস্ট তৈরি করে এবং SHA-2 পরিবারের অন্তর্গত, যার কোনো পরিচিত বাস্তবিক আক্রমণ নেই। একই হার্ডওয়্যারে SHA-256 SHA-1-এর চেয়ে প্রায় 20-30% ধীর, কিন্তু 96 অতিরিক্ত বিটের আউটপুট এবং কোনো পরিচিত কাঠামোগত দুর্বলতার অনুপস্থিতি এটিকে যেকোনো নতুন প্রকল্পের জন্য ডিফল্ট সুপারিশ করে।
Git কেন SHA-1 ব্যবহার করে?
যখন Linus Torvalds ২০০৫ সালে Git ডিজাইন করেছিলেন, তখন SHA-1 নিরাপদ বলে বিবেচিত হত এবং content-addressable স্টোরেজের জন্য গতি ও collision প্রতিরোধের ভালো ভারসাম্য দিত। Git SHA-1-কে নিরাপত্তা ব্যবস্থা হিসেবে নয়, বরং কন্টেন্ট শনাক্তকারী হিসেবে ব্যবহার করে — এটি প্রতিকূল হস্তক্ষেপ নয়, আকস্মিক দুর্নীতি শনাক্ত করে। ২০২১ সাল থেকে Git git-hash-function-transition পরিকল্পনায় বর্ণিত hash extension framework-এর মাধ্যমে SHA-256-এ মাইগ্রেট হচ্ছে।
SHA-1 হ্যাশ থেকে কি মূল ইনপুট পুনরুদ্ধার করা যায়?
না। SHA-1 একটি একমুখী ফাংশন যা হ্যাশিংয়ের সময় তথ্য বাতিল করে। ছোট বা সাধারণ ইনপুটের জন্য, আক্রমণকারীরা rainbow table বা brute-force অনুসন্ধান ব্যবহার করে মূল plaintext খুঁজে পেতে পারে, কিন্তু এটি অ্যালগরিদম উল্টানো নয় — এটি ইনপুট স্পেসের ব্যাপক অনুসন্ধান। পাসওয়ার্ডের জন্য যেকোনো দ্রুত হ্যাশ ফাংশনের পরিবর্তে bcrypt, scrypt বা Argon2 ব্যবহার করুন।
SHAttered আক্রমণ কীভাবে কাজ করে?
SHAttered আক্রমণ SHA-1 কম্প্রেশন ফাংশনের কাঠামোগত দুর্বলতা কাজে লাগায়। সাবধানে দুটি ভিন্ন 512-bit মেসেজ ব্লক তৈরি করে যা একই মধ্যবর্তী হ্যাশ স্টেট তৈরি করে, আক্রমণকারীরা একই SHA-1 ডাইজেস্ট কিন্তু ভিন্ন দৃশ্যমান কন্টেন্ট সহ দুটি PDF ফাইল তৈরি করেছিল। আক্রমণে প্রায় 2^63 SHA-1 গণনা প্রয়োজন হয়েছিল — একক-CPU সময়ে প্রায় 6,500 বছর, কিন্তু মাসের মধ্যে GPU ক্লাস্টারে সম্ভব। উন্নত কৌশলের সাথে খরচ আরও কমেছে।
SHA-1 ও HMAC-SHA1-এর মধ্যে পার্থক্য কী?
SHA-1 একটি সাধারণ হ্যাশ ফাংশন: hash = SHA1(message)। HMAC-SHA1 একটি keyed message authentication code: mac = HMAC(key, message)। HMAC হ্যাশ ফাংশনটিকে এমন একটি কনস্ট্রাকশনে মোড়ে যা length-extension আক্রমণ প্রতিরোধ করে এবং একটি গোপন কী প্রয়োজন। মজার বিষয় হল, SHA-1 নিজে collision প্রতিরোধের জন্য দুর্বল হলেও HMAC-SHA1 মেসেজ প্রমাণীকরণের জন্য নিরাপদ বলে বিবেচিত, কারণ HMAC নিরাপত্তা collision প্রতিরোধের উপর নয়, কম্প্রেশন ফাংশনের pseudorandom ফাংশন বৈশিষ্ট্যের উপর নির্ভর করে।
ফাইল চেকসামের জন্য SHA-1 নাকি MD5 ব্যবহার করব?
ফাইল চেকসামের জন্য SHA-1 MD5-এর চেয়ে ভালো পছন্দ। MD5 একটি 128-bit ডাইজেস্ট তৈরি করে এবং ২০০৪ সাল থেকে দুর্বল, বাস্তবিক collision আক্রমণ এখন সেকেন্ডের মধ্যে সম্পাদনযোগ্য। SHA-1 একটি 160-bit ডাইজেস্ট তৈরি করে এবং এর collision আক্রমণ, প্রদর্শিত হলেও, আরও ব্যয়বহুল। তবে যেকোনো নতুন সিস্টেমের জন্য SHA-256 পছন্দ করুন — এটি কোনো পরিচিত বাস্তবিক আক্রমণ ছাড়া 256-bit ডাইজেস্ট প্রদান করে এবং সমস্ত প্ল্যাটফর্ম ও ভাষায় ভালোভাবে সমর্থিত।