Apa yang Anda lakukan bukanlah "enkripsi", per se; itu "hashing". Perbedaan utama antara kedua adalah bahwa enkripsi adalah mudah reversibel (dengan kunci yang benar tentu saja), sedangkan hashing dirancang untuk menjadi sangat sulit untuk membalikkan dalam keadaan lain daripada mengetahui pesan asli di tempat pertama.
Secara teori, hash mensimulasikan "oracle acak", sebuah homunculus hipotetis dengan memori eidetik dan cara menghasilkan angka unik yang unik dan acak tanpa batas rentang atas. Anda akan memberi pria kecil ini pesan, dan satu dari dua hal akan terjadi; entah dia belum pernah melihat pesan sebelumnya, dalam hal ini dia menghasilkan nomor acak baru dan memberikannya kepada Anda sebagai intisari, atau dia telah melihat pesan itu sebelumnya, dan dia mengingat dan memberikan nomor yang dia hasilkan ketika dia melihatnya pertama kali. Dalam model teoritis itu, tidak ada hubungan nol antara pesan dan intisari pesannya, dan tanpa nomor tunggal yang muncul dua kali dari RNG tidak ada kemungkinan tabrakan.
Sayangnya, kami tidak memiliki ramalan acak yang ideal; ide ini memiliki ketidakmungkinan praktis untuk implementasi digital, seperti kemampuan oracle untuk secara efisien menyimpan dan mengingat setiap pesan yang pernah diacak oleh siapa pun di mana pun, dan kemampuan klien untuk menerima angka yang bisa ratusan atau ribuan digit desimal panjangnya. Sebagai gantinya, kami memiliki fungsi hash, yang merupakan operasi matematis ireversibel (satu arah) yang bekerja pada pesan itu sendiri, untuk membuat transformasi deterministik (pesan yang sama => hash yang sama) tanpa jelashubungan antara hash dan pesan asli. Seperti disebutkan dalam komentar, seharusnya juga tidak ada perubahan yang dapat diprediksi ke nilai hash yang dihasilkan dengan membuat perubahan sistematis pada pesan; idealnya, setiap bit intisari akan memiliki peluang 50% untuk berubah, memberikan perubahan pada sedikit pun pesan.
Ada banyak kegunaan untuk fungsi hash; mereka digunakan untuk verifikasi tantangan (anggap kredensial masuk seperti kata sandi) tanpa perlu bagi kedua pihak untuk mengetahui rahasia teks biasa, dan mereka digunakan sebagai checksum untuk memverifikasi bahwa pesan belum dirusak atau rusak. Mereka juga digunakan dalam apa yang disebut skenario "bukti kerja"; tugas komputasi yang sulit untuk diselesaikan tetapi mudah diverifikasi.
Jika Anda pernah menemukan cara untuk secara efisien membalikkan hash digest SHA256 untuk menghasilkan pesan (pesan apa saja) yang akan menghasilkan hash itu, itu akan menjadi bukti dengan demonstrasi bahwa sebenarnya hash rusak secara fundamental. Faktanya, SHA256 diyakini aman, artinya tidak ada metode yang terdokumentasi, betapapun praktisnya, untuk memulai dengan hash digest dan menghasilkan pesan bertabrakan yang membutuhkan lebih sedikit pekerjaan daripada sekadar mencoba setiap kemungkinan (yang untuk SHA-256 idealnya 2 ^ 256 ~ = 10 ^ 77 kemungkinan).