SHA-512 হ্যাশ জেনারেটর
যেকোনো টেক্সট থেকে SHA-512 হ্যাশ তৈরি করুন
ইনপুট টেক্সট
SHA-512 হ্যাশ
SHA-512 হ্যাশ এখানে দেখাবে…
SHA-512 হ্যাশিং কী?
SHA-512 হলো একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন, যা NIST FIPS 180-4-এ SHA-2 পরিবারের সবচেয়ে বড় সদস্য হিসেবে সংজ্ঞায়িত। এটি যেকোনো দৈর্ঘ্যের ইনপুট গ্রহণ করে এবং একটি নির্দিষ্ট 512-bit (64-byte) মেসেজ ডাইজেস্ট তৈরি করে, যা সাধারণত 128টি হেক্সাডেসিমাল অক্ষর হিসেবে প্রদর্শিত হয়। SHA-512 ডিজিটাল স্বাক্ষর (Ed25519 অভ্যন্তরীণভাবে SHA-512-এর উপর নির্ভর করে), HMAC নির্মাণ, ফাইল অখণ্ডতা যাচাই এবং ক্রিপ্টোগ্রাফিক প্রোটোকলে ব্যবহৃত হয় যেখানে বিস্তৃত নিরাপত্তা মার্জিন প্রয়োজন।
SHA-512, 64-bit শব্দ অ্যারিথমেটিক ও 80টি কম্প্রেশন রাউন্ড ব্যবহার করে 1024-bit (128-byte) ব্লকে কাজ করে। এর আটটি প্রাথমিক হ্যাশ মান প্রথম আটটি মৌলিক সংখ্যার বর্গমূলের ভগ্নাংশ থেকে প্রাপ্ত, এবং 80টি রাউন্ড কনস্ট্যান্ট প্রথম 80টি মৌলিক সংখ্যার ঘনমূল থেকে আসে। যেহেতু এটি নেটিভ 64-bit অপারেশন ব্যবহার করে, SHA-512 আধুনিক 64-bit প্রসেসরে SHA-256-এর চেয়ে প্রায়ই দ্রুততর, যদিও এটি দীর্ঘতর ডাইজেস্ট তৈরি করে।
SHA-384, SHA-512/224 এবং SHA-512/256 হলো SHA-512-এর ট্রাংকেটেড ভ্যারিয়েন্ট যা একই অভ্যন্তরীণ কাঠামো ব্যবহার করে কিন্তু ভিন্ন প্রাথমিক হ্যাশ মান এবং কম বিট আউটপুট দেয়। যখন SHA-2 পরিবারের সর্বোচ্চ ডাইজেস্ট দৈর্ঘ্য প্রয়োজন, অথবা কোনো প্রোটোকল বিশেষভাবে SHA-512 বাধ্যতামূলক করে (যেমন Ed25519 বা নির্দিষ্ট HMAC-ভিত্তিক কী ডেরিভেশন স্কিম), তখন SHA-512 সঠিক পছন্দ। এটি 256 বিটের collision resistance প্রদান করে, যা SHA-3-512-এর সমতুল্য এবং SHA-256-এর 128-bit সীমা অনেকটাই ছাড়িয়ে যায়।
অনলাইন SHA-512 জেনারেটর কেন ব্যবহার করবেন?
SHA-512 হ্যাশ তৈরি করতে সাধারণত একটি টার্মিনাল কমান্ড বা কিছু লাইনের কোড প্রয়োজন। এই ব্রাউজার-ভিত্তিক টুলটি আপনাকে কিছু ইনস্টল না করে, প্রেক্ষাপট পরিবর্তন না করে বা অস্থায়ী স্ক্রিপ্ট না লিখে তাৎক্ষণিকভাবে SHA-512 ডাইজেস্ট তৈরি করতে দেয়।
SHA-512 হ্যাশ জেনারেটরের ব্যবহার ক্ষেত্র
SHA-2 পরিবারের ভ্যারিয়েন্ট তুলনা
SHA-512 FIPS 180-4-এ সংজ্ঞায়িত SHA-2 পরিবারের অন্তর্গত। নিচের সারণিটি SHA-512-এর 64-bit অভ্যন্তরীণ কাঠামো ভাগ করে নেওয়া SHA-2 ভ্যারিয়েন্টগুলো তুলনা করে, পাশাপাশি রেফারেন্সের জন্য SHA-256-ও অন্তর্ভুক্ত করে।
| ভ্যারিয়েন্ট | ডাইজেস্টের আকার | হেক্সের দৈর্ঘ্য | বাইটের আকার | সবচেয়ে উপযুক্ত |
|---|---|---|---|---|
| SHA-256 | 256 bits | 64 hex chars | 32 bytes | TLS certificates, blockchain, JWTs, SRI |
| SHA-384 | 384 bits | 96 hex chars | 48 bytes | TLS 1.3 CertificateVerify, CNSA/Suite B |
| SHA-512 | 512 bits | 128 hex chars | 64 bytes | Digital signatures, HMAC, Ed25519, file integrity |
| SHA-512/224 | 224 bits | 56 hex chars | 28 bytes | SHA-512 speed on 64-bit CPUs, 224-bit output |
| SHA-512/256 | 256 bits | 64 hex chars | 32 bytes | SHA-512 speed on 64-bit CPUs, 256-bit output |
SHA-512 বনাম SHA-256 বনাম SHA-384 বনাম SHA-3-512
সঠিক হ্যাশ অ্যালগরিদম বেছে নেওয়া আপনার নিরাপত্তার প্রয়োজনীয়তা, কার্যক্ষমতার সীমাবদ্ধতা এবং প্রোটোকল স্পেসিফিকেশনের উপর নির্ভর করে। SHA-512 SHA-2 পরিবারের সবচেয়ে বিস্তৃত ডাইজেস্ট প্রদান করে এবং 64-bit হার্ডওয়্যারে SHA-256-এর চেয়ে প্রায়ই দ্রুততর। এই তুলনা উভয়ের মধ্যে বেছে নেওয়ার সময় সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলো কভার করে।
| বৈশিষ্ট্য | SHA-512 | SHA-256 | SHA-384 | SHA-3-512 |
|---|---|---|---|---|
| Digest size | 512 bits (128 hex) | 256 bits (64 hex) | 384 bits (96 hex) | 512 bits (128 hex) |
| Block size | 1024 bits | 512 bits | 1024 bits | 1600 bits (sponge) |
| Word size | 64 bits | 32 bits | 64 bits | N/A (sponge) |
| Rounds | 80 | 64 | 80 | 24 |
| Collision resistance | 2^256 operations | 2^128 operations | 2^192 operations | 2^256 operations |
| Security status | Secure | Secure | Secure | Secure |
| Standard | FIPS 180-4 | FIPS 180-4 | FIPS 180-4 | FIPS 202 |
| Web Crypto API | Yes | Yes | Yes | No |
| 64-bit optimized | Yes | No (32-bit words) | Yes | Yes |
| Primary use today | Ed25519, HMAC, file checksums | TLS, blockchain, SRI | TLS 1.3, CNSA | Backup standard |
SHA-512 অভ্যন্তরীণভাবে কীভাবে কাজ করে
SHA-512 একটি Merkle–Damgård কনস্ট্রাকশনের মাধ্যমে 1024-bit ব্লকে ইনপুট প্রক্রিয়া করে। এটি আটটি 64-bit স্টেট শব্দ (H0–H7) দিয়ে শুরু হয়, যা প্রথম আটটি মৌলিক সংখ্যার বর্গমূলের ভগ্নাংশ থেকে প্রাপ্ত। প্রতিটি ব্লক 80 রাউন্ডের মিক্সিংয়ের মধ্য দিয়ে যায় যা 64-bit শব্দে বিটওয়াইজ অপারেশন (AND, XOR, NOT, right-rotate, right-shift) এবং প্রথম 80টি মৌলিক সংখ্যার ঘনমূল থেকে প্রাপ্ত 80টি রাউন্ড কনস্ট্যান্ট ব্যবহার করে।
SHA-512: 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f
989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
(512 bits = 64 bytes = 128 hex characters)
| ধাপ | বিবরণ |
|---|---|
| Padding | Append a 1-bit, then zeros until the message length is 896 mod 1024. Append the original length as a 128-bit big-endian integer. |
| Block splitting | Divide the padded message into 1024-bit (128-byte) blocks. |
| Message schedule | Expand each 16-word (64-bit) block into 80 words using sigma functions with right-rotate and right-shift operations on 64-bit values. |
| Compression | Process 80 rounds per block using Ch, Maj, and two Sigma functions with 80 round constants derived from the cube roots of the first 80 primes. |
| Output | Concatenate the eight 64-bit state words (H0–H7) into a 512-bit (64-byte) digest, rendered as 128 hexadecimal characters. |
64-bit শব্দের প্রশস্ততা SHA-256 থেকে মূল পার্থক্য। 64-bit CPU-তে, প্রতিটি অপারেশন প্রতি চক্রে দ্বিগুণ বিট প্রক্রিয়া করে, যার কারণে SHA-512 প্রায়ই SHA-256-এর তুলনায় বেঞ্চমার্কে ভালো করে, যদিও এটি 64-এর পরিবর্তে 80 রাউন্ড চালায়। avalanche effect নিশ্চিত করে যে একটি ইনপুট বিট পরিবর্তন করলে সমস্ত 512 আউটপুট বিটের প্রায় ৫০% পরিবর্তিত হয়।
SHA-512 কোডের উদাহরণ
SHA-512 প্রতিটি প্রধান ভাষা ও রানটাইমে নেটিভলি সমর্থিত। Web Crypto API ব্রাউজারে কোনো লাইব্রেরি ছাড়াই এটি সরবরাহ করে। নিচের উদাহরণগুলো Unicode পরিচালনা ও ফাইল হ্যাশিং সহ সাধারণ ব্যবহারের ধরন দেখায়।
// Works in all modern browsers and Node.js 18+
async function sha512(text) {
const data = new TextEncoder().encode(text)
const hashBuffer = await crypto.subtle.digest('SHA-512', data)
const hashArray = Array.from(new Uint8Array(hashBuffer))
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}
await sha512('hello world')
// → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f"
// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha512').update('hello world').digest('hex')
// → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f"import hashlib
# Basic SHA-512 hash
result = hashlib.sha512(b'hello world').hexdigest()
print(result)
# → "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee..."
# Hash a string with Unicode (encode to bytes first)
text = 'café ☕'
hashlib.sha512(text.encode('utf-8')).hexdigest()
# → 128-character hex string
# Hash a large file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
sha = hashlib.sha512()
for chunk in iter(lambda: f.read(8192), b''):
sha.update(chunk)
print(sha.hexdigest())package main
import (
"crypto/sha512"
"fmt"
)
func main() {
data := []byte("hello world")
hash := sha512.Sum512(data)
fmt.Printf("%x\n", hash)
// → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f...
}# Using sha512sum (Linux) or shasum (macOS) echo -n "hello world" | sha512sum # → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee... - # macOS echo -n "hello world" | shasum -a 512 # → 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee... - # Verify a file checksum echo "309ecc48... myfile.bin" | sha512sum -c # → myfile.bin: OK # Using openssl (cross-platform) echo -n "hello world" | openssl dgst -sha512 # → SHA2-512(stdin)= 309ecc489c12d6eb4cc40f50c902f2b4...