SHA-256 adalah fungsi hash kriptografi dalam keluarga SHA-2, dirancang oleh U.S. National Security Agency (NSA) dan distandarisasi oleh NIST dalam FIPS 180-4 pada tahun 2012. Fungsi ini menerima input apa pun—dari string kosong hingga file berukuran gigabyte—dan menghasilkan digest 256-bit (64 karakter heksadesimal) yang tetap.
Algoritma memproses input dalam blok 512-bit (64-byte) melalui 64 putaran pencampuran. Algoritma mempertahankan keadaan internal 8-kata (A hingga H) yang diinisialisasi dengan konstanta yang diturunkan dari akar kuadrat dari delapan bilangan prima pertama. Setiap putaran menerapkan rotasi bitwise, XOR, penjumlahan, dan dua fungsi non-linear Ch (choose) dan Maj (majority). Konstanta putaran berasal dari akar kubus dari 64 bilangan prima pertama, memberikan algoritma properti avalanche yang kuat: perubahan satu bit pada input membalik sekitar setengah bit output.
Hingga tahun 2026, tidak ada serangan tabrakan atau pre-image praktis yang diketahui terhadap SHA-256 penuh 64 putaran. Analisis cryptanalysis terbaik yang diterbitkan hanya mencapai tabrakan parsial pada varian reduced-round. Ketahanan tabrakan berada pada urutan 2^128 operasi—jauh di luar kemampuan adversaris realistis—membuat SHA-256 aman untuk tanda tangan sertifikat TLS, proof-of-work Bitcoin, verifikasi integritas file, dan pengalamatan konten dalam sistem seperti IPFS dan Git modern.
Satu hal yang tidak dirancang untuk SHA-256 adalah penyimpanan kata sandi. Karena ini adalah hash cepat (GPU modern menghitung miliaran digest per detik), penyerang yang mencuri database hash kata sandi SHA-256 dapat melakukan brute-force kata sandi umum dengan cepat. Untuk kata sandi, gunakan KDF lambat yang diasinkan seperti Argon2id, scrypt, atau bcrypt. Untuk semua hal lainnya, SHA-256 adalah default modern.
SHA-256 distandarisasi sebagai FIPS 180-4 oleh NIST, didefinisikan dalam RFC 6234 oleh IETF, dan disetujui oleh pemerintah AS untuk digunakan dalam sistem informasi federal. Ini adalah default yang direkomendasikan dalam panduan transisi NIST SP 800-131A Rev. 2, dan satu-satunya fungsi hash yang masih diterima untuk tanda tangan CMS, TLS 1.3, dan PGP baru.