Pengidentifikasi Hash

Identifikasi jenis hash berdasarkan panjang dan format โ€” MD5, SHA-1, SHA-256 dan lainnya

String Hash

Berjalan lokal ยท Aman untuk menempel rahasia

Apa Itu Identifikasi Hash?

Identifikasi hash adalah proses menentukan algoritma hash kriptografis mana yang menghasilkan suatu digest tertentu. Fungsi hash kriptografis seperti MD5, SHA-1, dan SHA-256 masing-masing menghasilkan keluaran berukuran tetap, dan panjang keluaran tersebut merupakan sinyal utama yang digunakan untuk mengidentifikasi hash yang tidak dikenal. Ketika Anda menemukan string heksadesimal dalam dump basis data, berkas konfigurasi, atau respons API, alat pengidentifikasi hash memberi tahu Anda algoritma mana yang kemungkinan besar menghasilkannya.

Setiap algoritma hash memetakan data masukan sembarang ke keluaran berukuran tetap yang disebut digest. MD5 selalu menghasilkan 128 bit (32 karakter hex), SHA-1 selalu menghasilkan 160 bit (40 karakter hex), dan SHA-256 selalu menghasilkan 256 bit (64 karakter hex). Panjang keluaran yang deterministik inilah yang memungkinkan identifikasi algoritma tanpa akses ke masukan asli maupun kode hashing.

Identifikasi berdasarkan panjang saja tidak selalu definitif. Beberapa algoritma berbagi ukuran keluaran yang sama โ€” misalnya, SHA-256 dan SHA3-256 keduanya menghasilkan digest hex 64 karakter. Dalam kasus seperti ini, pengidentifikasi hash memberikan daftar kandidat algoritma yang diurutkan berdasarkan prevalensinya. Petunjuk konteks seperti sistem sumber, format pengkodean (hex vs. Base64), dan keberadaan prefiks algoritma (seperti '$2b$' untuk bcrypt) mempersempit kemungkinan lebih lanjut.

Mengapa Menggunakan Pengidentifikasi Hash?

Hash yang tidak dikenal sering muncul selama audit keamanan, migrasi basis data, dan analisis forensik. Pengidentifikasi hash menghilangkan tebak-tebakan dan mengarahkan Anda ke algoritma yang tepat dalam hitungan detik.

โšก
Deteksi Instan
Tempel sebuah hash dan dapatkan kandidat algoritma seketika. Tidak perlu menghitung karakter secara manual atau merujuk tabel referensi โ€” alat ini memetakan panjang hex ke semua algoritma yang cocok secara otomatis.
๐Ÿ”’
Analisis Mengutamakan Privasi
Seluruh identifikasi berjalan sepenuhnya di browser Anda menggunakan JavaScript. Nilai hash tidak pernah meninggalkan perangkat Anda, yang penting ketika menganalisis hash kata sandi, token autentikasi, atau bukti forensik yang sensitif.
๐Ÿ“‹
Cakupan Algoritma Lengkap
Mendeteksi MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, dan padanannya dalam SHA-3. Tabel referensi mencakup seluruh keluarga SHA-2 dan SHA-3 ditambah alternatif umum seperti RIPEMD-160 dan BLAKE2.
๐Ÿšซ
Tanpa Akun atau Instalasi
Bekerja langsung di browser modern mana pun. Tanpa pendaftaran, tanpa API key, tanpa CLI yang perlu dipasang. Tandai halaman ini dan gunakan kapan pun Anda menemukan hash yang tidak dikenal โ€” di OS apa pun, perangkat apa pun.

Kasus Penggunaan Hash Identifier

Audit Keamanan
Selama uji penetrasi, mengidentifikasi algoritma hash kata sandi dalam basis data yang bocor menentukan pendekatan cracking. Hash MD5 dan SHA-1 mengindikasikan perlindungan yang lemah dan dapat diprioritaskan untuk remediasi.
Migrasi Basis Data
Saat memigrasikan rekaman pengguna antar sistem, algoritma hash kata sandi yang tersimpan harus diketahui agar lapisan autentikasi baru dapat dikonfigurasi dengan benar. Kesalahan mengidentifikasi algoritma menyebabkan semua proses masuk gagal.
DevOps dan CI/CD
Pipeline build sering menyertakan checksum untuk verifikasi artefak. Mengidentifikasi apakah suatu checksum adalah SHA-256 atau SHA-512 memastikan Anda menggunakan perintah verifikasi yang tepat dalam skrip deployment.
Forensik Digital
Pemeriksa forensik menemukan digest hash dalam log integritas berkas, catatan blockchain, dan metadata bukti. Mengidentifikasi algoritma merupakan prasyarat untuk memverifikasi rantai penguasaan bukti.
Integrasi API
API pihak ketiga terkadang mengembalikan nilai hash tanpa mendokumentasikan algoritmanya. Mengidentifikasi jenis hash dari respons memungkinkan Anda mengonfigurasi verifikasi tanda tangan webhook atau validasi checksum dengan benar.
Belajar Kriptografi
Mahasiswa yang mengikuti kursus kriptografi dapat menempelkan hash yang dihasilkan oleh berbagai algoritma dan langsung melihat hubungan antara pilihan algoritma, panjang keluaran, dan properti keamanannya.

Referensi Panjang Algoritma Hash

Tabel di bawah memetakan setiap algoritma hash umum ke ukuran keluarannya dalam bit, karakter hex, dan byte mentah. Ini adalah tabel pencarian utama yang digunakan oleh alat identifikasi hash. Ketika beberapa algoritma berbagi panjang hex yang sama, Anda memerlukan konteks tambahan untuk membedakannya.

AlgoritmaBitKarakter HexByteCatatan
MD51283216Broken โ€” collisions trivial since 2004
SHA-11604020Deprecated โ€” SHAttered attack (2017)
SHA-2242245628Truncated SHA-256; rarely used standalone
SHA-2562566432Current standard; TLS, Git, Bitcoin
SHA-3843849648Truncated SHA-512; CNSA Suite approved
SHA-51251212864Maximum SHA-2 output; large-data hashing
SHA3-2562566432Keccak-based; NIST alternative to SHA-2
SHA3-51251212864Keccak-based; highest SHA-3 strength
RIPEMD-1601604020Used in Bitcoin address derivation
BLAKE2s2566432Faster than SHA-256; 256-bit output

Membedakan Panjang Hash yang Ambigu

Beberapa panjang hex cocok dengan beberapa algoritma. Dua ambiguitas paling umum adalah hash 64 karakter (SHA-256 vs. SHA3-256) dan hash 40 karakter (SHA-1 vs. RIPEMD-160). Berikut cara membedakannya ketika panjang saja tidak mencukupi.

64 karakter hex: SHA-256 vs. SHA3-256
Keduanya menghasilkan digest 256-bit (64 karakter). SHA-256 jauh lebih umum digunakan dalam praktik โ€” commit Git, sertifikat TLS, blok Bitcoin, dan sebagian besar tanda tangan API menggunakan SHA-256. SHA3-256 biasanya hanya ditemukan pada sistem yang secara eksplisit memerlukan kepatuhan NIST SP 800-185 atau konstruksi berbasis Keccak. Periksa dokumentasi sistem sumber untuk memastikannya.
40 karakter hex: SHA-1 vs. RIPEMD-160
SHA-1 adalah hash 160-bit yang jauh lebih banyak digunakan โ€” digunakan secara historis dalam Git (sebelum transisi ke SHA-256), TLS, dan penandatanganan kode. RIPEMD-160 terutama muncul dalam pembuatan alamat Bitcoin (HASH160 = SHA-256 diikuti oleh RIPEMD-160). Jika hash berasal dari konteks mata uang kripto, pertimbangkan RIPEMD-160; selain itu, SHA-1 adalah kandidat yang lebih mungkin.

Contoh Kode

Di bawah ini adalah implementasi kerja identifikasi hash berdasarkan panjang hex dalam empat bahasa pemrograman. Setiap fungsi memvalidasi pengkodean hex, mencari jumlah karakter, dan mengembalikan semua algoritma yang cocok.

JavaScript
function identifyHash(hex) {
  const len = hex.length
  const isHex = /^[0-9a-fA-F]+$/.test(hex)
  if (!isHex) return ['Not a hex-encoded hash']

  const map = {
    32:  ['MD5'],
    40:  ['SHA-1', 'RIPEMD-160'],
    56:  ['SHA-224', 'SHA3-224'],
    64:  ['SHA-256', 'SHA3-256', 'BLAKE2s'],
    96:  ['SHA-384', 'SHA3-384'],
    128: ['SHA-512', 'SHA3-512', 'BLAKE2b'],
  }
  return map[len] || [`Unknown (${len} hex chars)`]
}

identifyHash('d41d8cd98f00b204e9800998ecf8427e')
// โ†’ ["MD5"]

identifyHash('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')
// โ†’ ["SHA-256", "SHA3-256", "BLAKE2s"]
Python
import re

HASH_LENGTHS = {
    32:  ['MD5'],
    40:  ['SHA-1', 'RIPEMD-160'],
    56:  ['SHA-224', 'SHA3-224'],
    64:  ['SHA-256', 'SHA3-256', 'BLAKE2s'],
    96:  ['SHA-384', 'SHA3-384'],
    128: ['SHA-512', 'SHA3-512', 'BLAKE2b'],
}

def identify_hash(hex_string: str) -> list[str]:
    hex_string = hex_string.strip()
    if not re.fullmatch(r'[0-9a-fA-F]+', hex_string):
        return ['Not a hex-encoded hash']
    return HASH_LENGTHS.get(len(hex_string), [f'Unknown ({len(hex_string)} hex chars)'])

identify_hash('da39a3ee5e6b4b0d3255bfef95601890afd80709')
# โ†’ ['SHA-1', 'RIPEMD-160']

identify_hash('a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a')
# โ†’ ['SHA-256', 'SHA3-256', 'BLAKE2s']
Go
package main

import (
	"fmt"
	"regexp"
)

var hexPattern = regexp.MustCompile("^[0-9a-fA-F]+$")

var hashLengths = map[int][]string{
	32:  {"MD5"},
	40:  {"SHA-1", "RIPEMD-160"},
	56:  {"SHA-224", "SHA3-224"},
	64:  {"SHA-256", "SHA3-256", "BLAKE2s"},
	96:  {"SHA-384", "SHA3-384"},
	128: {"SHA-512", "SHA3-512", "BLAKE2b"},
}

func identifyHash(hex string) []string {
	if !hexPattern.MatchString(hex) {
		return []string{"Not a hex-encoded hash"}
	}
	if algos, ok := hashLengths[len(hex)]; ok {
		return algos
	}
	return []string{fmt.Sprintf("Unknown (%d hex chars)", len(hex))}
}

func main() {
	fmt.Println(identifyHash("d41d8cd98f00b204e9800998ecf8427e"))
	// โ†’ [MD5]
}
CLI (Bash)
#!/bin/bash
# Identify a hash from the command line by character count
hash="$1"

if [[ ! "$hash" =~ ^[0-9a-fA-F]+$ ]]; then
  echo "Not a hex-encoded hash"
  exit 1
fi

len=${#hash}
case $len in
  32)  echo "MD5 (128-bit)" ;;
  40)  echo "SHA-1 or RIPEMD-160 (160-bit)" ;;
  56)  echo "SHA-224 or SHA3-224 (224-bit)" ;;
  64)  echo "SHA-256 or SHA3-256 (256-bit)" ;;
  96)  echo "SHA-384 or SHA3-384 (384-bit)" ;;
  128) echo "SHA-512 or SHA3-512 (512-bit)" ;;
  *)   echo "Unknown hash length: $len chars" ;;
esac

# Usage: ./identify.sh d41d8cd98f00b204e9800998ecf8427e
# โ†’ MD5 (128-bit)

Pertanyaan yang Sering Diajukan

Bagaimana cara kerja identifikasi hash?
Identifikasi hash terutama bergantung pada panjang digest yang dikodekan dalam hex. Setiap algoritma hash menghasilkan jumlah bit keluaran yang tetap: MD5 menghasilkan 128 bit (32 karakter hex), SHA-1 menghasilkan 160 bit (40 karakter hex), SHA-256 menghasilkan 256 bit (64 karakter hex), dan seterusnya. Pengidentifikasi mengukur panjang string, memverifikasi bahwa string hanya mengandung karakter heksadesimal, dan memetakannya ke ukuran keluaran algoritma yang diketahui.
Bisakah pengidentifikasi hash menentukan algoritma yang tepat dengan pasti?
Tidak selalu. Beberapa algoritma dapat menghasilkan panjang keluaran yang sama. SHA-256 dan SHA3-256 keduanya menghasilkan 64 karakter hex. SHA-1 dan RIPEMD-160 keduanya menghasilkan 40 karakter hex. Dalam kasus ini, alat mengembalikan semua kandidat. Anda memerlukan konteks โ€” sistem sumber, dokumentasi, atau prefiks algoritma โ€” untuk mempersempitnya ke satu algoritma.
Bagaimana jika hash saya dikodekan dalam Base64 bukan hex?
Hash yang dikodekan Base64 menggunakan kumpulan karakter yang berbeda (A-Z, a-z, 0-9, +, /) dan memiliki panjang yang berbeda dari padanan hex-nya. Hash 256-bit adalah 44 karakter Base64 tetapi 64 karakter hex. Dekode string Base64 ke byte mentah terlebih dahulu, lalu periksa panjang byte-nya: 16 byte = MD5, 20 byte = SHA-1, 32 byte = SHA-256, 48 byte = SHA-384, 64 byte = SHA-512.
Apakah aman menempelkan hash kata sandi ke pengidentifikasi online?
Alat ini berjalan sepenuhnya di browser Anda โ€” tidak ada data yang dikirimkan ke server mana pun. Hash tidak pernah meninggalkan perangkat Anda. Namun, untuk keamanan operasional maksimal selama audit formal, Anda dapat memverifikasinya dengan memeriksa tab jaringan di alat pengembang browser Anda atau dengan menggunakan alat ini secara offline setelah halaman dimuat.
Mengapa MD5 masih digunakan jika sudah rusak secara kriptografis?
MD5 rusak untuk ketahanan tabrakan โ€” penyerang dapat membuat dua masukan berbeda yang menghasilkan hash yang sama. Namun, MD5 masih digunakan dalam konteks non-keamanan: checksum berkas untuk verifikasi unduhan, kunci cache, deduplikasi, dan ETag dalam HTTP. Untuk tujuan ini, tabrakan yang tidak disengaja sangat tidak mungkin terjadi dan serangan yang disengaja bukan merupakan kekhawatiran. MD5 tidak boleh digunakan untuk hashing kata sandi, tanda tangan digital, atau verifikasi sertifikat.
Bagaimana cara mengidentifikasi hash bcrypt, scrypt, atau Argon2?
Fungsi hashing kata sandi seperti bcrypt, scrypt, dan Argon2 menggunakan prefiks string yang khas, bukan keluaran hex mentah. Hash bcrypt dimulai dengan '$2a$', '$2b$', atau '$2y$' diikuti oleh faktor biaya. Hash Argon2 dimulai dengan '$argon2id$' atau '$argon2i$'. Hash scrypt biasanya dimulai dengan '$scrypt$'. Ini bukan digest kriptografis mentah, sehingga identifikasi berbasis panjang tidak berlaku โ€” prefiks itu sendiri yang mengidentifikasi algoritmanya.
Apa perbedaan antara SHA-2 dan SHA-3?
SHA-2 (yang mencakup SHA-256, SHA-384, dan SHA-512) didasarkan pada konstruksi Merkle-Damgard yang dirancang oleh NSA dan distandarisasi dalam FIPS 180-4. SHA-3 (SHA3-256, SHA3-384, SHA3-512) didasarkan pada konstruksi sponge Keccak, dipilih melalui kompetisi publik NIST dan distandarisasi dalam FIPS 202. Keduanya menghasilkan panjang keluaran yang sama pada tingkat keamanan yang setara, tetapi menggunakan struktur internal yang secara fundamental berbeda. SHA-3 dirancang sebagai cadangan jika ditemukan kelemahan struktural pada SHA-2, meski kelemahan semacam itu belum pernah terbukti ada.