Generator Hash SHA1

SHA-1 menghasilkan nilai digest berukuran 160 bit (setara dengan 40 karakter heksadesimal) dan merupakan algoritma hash yang digunakan untuk ID objek dalam Git, checksum versi lama SVN, serta sejumlah sistem penandatanganan sebelum tahun 2017. Cukup tempelkan teks apa pun untuk memperoleh nilai hash deterministiknya. Perlu dicatat sejak awal: SHA-1 tidak memiliki ketahanan terhadap kolisi (SHAttered, 2017) dan tidak boleh digunakan untuk penandatanganan baru maupun penyimpanan kata sandi; penggunaannya hanya diperbolehkan untuk pemeriksaan integritas yang bersifat non-adversarial.

Cara menghitung nilai hash SHA-1

  1. 1

    Pasang masukan Anda

    Setiap teks, berupa deretan karakter, file lengkap yang diubah menjadi format teks, atau urutan heksadesimal.

  2. 2

    Enkodingnya adalah UTF-8

    Data masukan diserialisasi ke dalam byte UTF-8 sebelum proses hashing, sesuai dengan pengaturan bawaan pada OpenSSL, Python hashlib, dan Node Crypto.

  3. 3

    Lingkaran Merkle-Damgard berjalan

    Pesan tersebut dipad, dibagi menjadi blok berukuran 512 bit, lalu diolah melalui fungsi kompresi SHA-1 sebanyak 80 kali untuk setiap blok.

  4. 4

    Salin hasil digest heksadesimal sepanjang 40 karakter

    Hasilnya selalu berupa 40 karakter heksadesimal huruf kecil (160 bit).

SHA-1 Secara Singkat

Properti Nilai
Ukuran keluaran 160 bit / 40 karakter heksadesimal
Ukuran blok 512 bit
Jumlah putaran 80
Ketahanan terhadap tabrakan Rusak (2^63 prefiks terpilih)
Ketahanan terhadap preimage Utuh (per saat penulisan)
Kecepatan ~500 MB/s pada satu inti modern

Di mana SHA-1 masih dapat diterima

  • Git: ID commit dan blob menggunakan format SHA-1 (dengan opsi tambahan SHA-256). Kehadiran kolisi dapat menyebabkan kekacauan dalam riwayat perubahan, namun tidak memungkinkan pembuatan commit palsu tanpa kunci yang dimiliki oleh penulisnya.
  • Deduplikasi non-keamanan: Penyampaian konten dalam sistem penyimpanan objek di mana model ancamannya tidak mencakup adanya penyerang.
  • API yang kompatibel secara mundur. webhook lama seperti X-Hub-Signature dari GitHub (versi 1).
  • Identifikasi forensik: Pencitraan sidik jari file untuk proses deduplikasi di seluruh arsip.

Di mana SHA-1 tidak dapat diterima

  • Sertifikat TLS: Sejak tahun 2017, peramban tidak lagi mempercayai sertifikat berbasis SHA-1.
  • Penandatanganan kode: Microsoft, Apple, dan Mozilla menolak penggunaan tanda tangan SHA-1.
  • Hashing kata sandi: Gunakan Argon2id atau bcrypt.
  • HMAC dalam desain baru. Gunakan setidaknya HMAC-SHA-256.

Jika Anda ingin memverifikasi hasil keluaran

Bandingkan dengan echo -n "hello" | sha1sum pada sistem Unix mana pun. Hash dari string hello adalah aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d.

Pertanyaan yang Sering Diajukan

Bukan secara matematis. Untuk input pendek yang umum, seorang penyerang dengan kamus yang telah dihitung sebelumnya dapat mengidentifikasinya secara instan; itulah sebabnya hash saja tidak cukup untuk melindungi kata sandi. Untuk string acak berukuran 40 karakter, tidak ada metode pembalikan yang praktis tersedia.

Bukan. SHA (Secure Hash Algorithm) merupakan kelompok algoritma yang diterbitkan oleh NIST. SHA-1 adalah algoritma berukuran 160 bit yang dirilis pada tahun 1995; sedangkan SHA-2 mencakup seri SHA-224, SHA-256, SHA-384, dan SHA-512.

Untuk memastikan kompatibilitas dengan sejarah penggunaan yang telah berlangsung selama lebih dari satu dekade, sejak tahun 2017 Git telah dilengkapi mekanisme perlindungan terhadap kolisi prefix tertentu (SHA-1DC) serta mendukung repositori berbasis SHA-256 untuk proyek-proyek baru.

Di server kami. Teks Anda dikirim melalui koneksi terenkripsi, di-hash dengan fungsi SHA-1 standar, lalu digest 40 karakter dikembalikan. Kami tidak menyimpan teks yang Anda kirim. Karena SHA-1 bersifat satu arah, digest itu sendiri tidak dapat diubah kembali menjadi masukan Anda.

Alat Terkait

Alat ini tersedia dalam bahasa lain