Press "Enter" to skip to content

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

fadli 2

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman.

SHA-256 (Secure Hash Algorithm 256-bit) adalah salah satu algoritma fungsi hash kriptografi yang digunakan secara luas untuk menghasilkan nilai hash unik dari data input.

Algoritma SHA-256 menghasilkan nilai hash dengan panjang 256-bit, yang terdiri dari serangkaian angka heksadesimal.

Fungsi hash kriptografi seperti SHA-256 digunakan untuk mengubah data input apa pun menjadi nilai hash yang mewakili data tersebut.

Karakteristik penting dari fungsi hash adalah bahwa meskipun data inputnya memiliki ukuran berbeda (misalnya, pesan teks dengan panjang yang berbeda), nilai hash yang dihasilkan akan memiliki panjang yang tetap.

Penggunaan umum SHA-256

Penggunaan SHA-256 meluas dalam berbagai aplikasi keamanan, termasuk dalam protokol keamanan seperti Transport Layer Security (TLS), Secure Sockets Layer (SSL), protokol blockchain seperti Bitcoin, dan banyak lagi.

Nilai hash SHA-256 sering digunakan untuk mengenkripsi kata sandi, memverifikasi integritas file, atau menandatangani digital untuk keperluan verifikasi keaslian data nya.

Beberapa penggunaan umum SHA-256 meliputi:

  1. Keamanan dan integritas data: SHA-256 digunakan untuk memastikan integritas data dengan membandingkan nilai hash dari data yang diterima dengan nilai hash yang diharapkan. Jika nilai hashnya sama, dapat diasumsikan bahwa data tidak berubah. Jika nilai hash berbeda, dapat menunjukkan adanya perubahan pada data.

  2. Keamanan kata sandi: SHA-256 digunakan dalam pengamanan kata sandi dan otentikasi pengguna. Sebagai contoh, algoritma tersebut digunakan dalam fungsi pengamanan seperti bcrypt atau PBKDF2 untuk menghasilkan nilai hash dari kata sandi pengguna agar tidak tersimpan dalam bentuk teks biasa dalam database.

  3. Blockchain dan kriptocurrency: SHA-256 adalah salah satu algoritma yang digunakan dalam kriptografi di dalam teknologi blockchain. Misalnya, dalam blockchain Bitcoin, SHA-256 digunakan dalam proses penambangan (mining) untuk menciptakan blok hash yang memvalidasi transaksi dan mencari nonce yang sesuai.

Nilai hash yang dihasilkan oleh SHA-256 adalah unik untuk setiap kombinasi data input yang berbeda.

Selain itu, perubahan kecil dalam data input akan menghasilkan nilai hash yang sepenuhnya berbeda. Ini menjadikan SHA-256 sangat berguna dalam mengidentifikasi perubahan data dan menjaga keamanan dan integritasnya.

Mengembalikan Nilai Hash SHA256 / Decrypt SHA256

Untuk mendekripsi hash SHA256, kita perlu memahami bahwa fungsi hash seperti SHA256 dirancang agar tidak dapat dibalikkan atau didekripsi.

Algoritma hash digunakan untuk menghasilkan nilai hash yang unik untuk setiap input yang berbeda, tetapi tidak dimaksudkan untuk dikembalikan ke nilai aslinya.

Hashing adalah proses mengambil input apa pun (teks, file, atau data lainnya) dan mengubahnya menjadi nilai hash yang unik dengan panjang tetap.

Nilai hash yang dihasilkan tidak dapat dikembalikan ke nilai aslinya dengan cara yang sederhana atau langsung.

Namun, ada beberapa metode yang dapat digunakan untuk “mendekripsi” hash SHA256 dengan mencoba-coba atau menerapkan serangan seperti menggunakan teknik “brute force” atau “rainbow table“.

Namun, ini hanya efektif jika nilai hash tersebut terkait dengan kata sandi yang lemah atau terdapat di dalam daftar nilai hash yang sudah diketahui.

Namun, penting untuk dicatat bahwa usaha untuk mendekripsi hash SHA256 dengan metode ini tidak dijamin berhasil, dan membutuhkan waktu yang sangat lama tergantung pada kompleksitas nilai hash dan kekuatan komputasi yang tersedia.

Dalam konteks penggunaan yang benar, hash SHA256 digunakan untuk memverifikasi integritas data, menyimpan kata sandi secara aman (dalam bentuk hash), dan berbagai tujuan keamanan lainnya.

Jadi, jika kamu ingin “mendekripsi” hash SHA256, metode yang disebutkan di atas mungkin tidak menghasilkan solusi yang memadai.

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

Sekarang kita akan coba implementasikan cara penggunaan Hashing SHA-256 pada beberapa bahasa pemrograman modern.

Menghasilkan Nilai Hash SHA-256 Pada Bahasa PHP

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

Di PHP, kamu dapat menggunakan fungsi hash() untuk menghasilkan nilai hash SHA-256 dari sebuah string atau data.

Berikut adalah contoh penggunaan fungsi hash() untuk menghasilkan SHA-256:

$data = 'Hello, world!';

// Menghasilkan SHA-256 hash dari $data
$sha256Hash = hash('sha256', $data);

echo $sha256Hash;

Dalam contoh di atas, kita menggunakan fungsi hash() dengan algoritma 'sha256' untuk menghasilkan nilai hash SHA-256 dari string 'Hello, world!'. Hasil hash akan disimpan dalam variabel $sha256Hash dan kemudian dicetak.

Kamu juga bisa menghasilkan nilai hash SHA-256 dari file dengan menggunakan fungsi hash_file(). Berikut adalah contoh penggunaannya:

$filePath = 'path/to/file.txt';

// Menghasilkan SHA-256 hash dari isi file
$sha256Hash = hash_file('sha256', $filePath);

echo $sha256Hash;

Dalam contoh di atas, kita menggunakan fungsi hash_file() dengan algoritma 'sha256' untuk menghasilkan nilai hash SHA-256 dari isi file dengan path 'path/to/file.txt'. Hasil hash akan disimpan dalam variabel $sha256Hash dan kemudian dicetak.

Perlu diingat bahwa nilai hash yang dihasilkan adalah dalam bentuk string dan terdiri dari karakter-karakter heksadesimal. Nilai hash SHA-256 memiliki panjang 64 karakter (atau 64 digit heksadesimal) dalam bentuk string.

Baca Juga: Cara Menghitung Usia Berdasarkan Tanggal Lahir Di PHP.

Menghasilkan Nilai Hash SHA-256 Pada Bahasa Javascript

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

Dalam JavaScript, kamu dapat menggunakan fungsi bawaan crypto.subtle.digest() untuk menghasilkan nilai hash SHA-256 dari sebuah string atau data.

Namun, perlu diingat bahwa fungsi ini bekerja secara asynchronous dan mengembalikan hasil dalam bentuk ArrayBuffer. Berikut adalah contoh penggunaan SHA-256 pada JavaScript:

// Fungsi untuk mengonversi ArrayBuffer menjadi hex string
function arrayBufferToHexString(buffer) {
  return Array.from(new Uint8Array(buffer))
    .map(byte => byte.toString(16).padStart(2, '0'))
    .join('');
}

// Fungsi untuk menghasilkan SHA-256 hash dari string
async function sha256(message) {
  const encoder = new TextEncoder();
  const data = encoder.encode(message);

  const hashBuffer = await crypto.subtle.digest('SHA-256', data);
  const hashHex = arrayBufferToHexString(hashBuffer);

  return hashHex;
}

// Contoh penggunaan
const message = 'Hello, world!';
sha256(message).then(hash => {
  console.log('SHA-256 Hash:', hash);
}).catch(error => {
  console.error('Error:', error);
});

Dalam contoh di atas, kita mendefinisikan dua fungsi bantu.

Fungsi arrayBufferToHexString() digunakan untuk mengonversi ArrayBuffer menjadi string heksadesimal, sedangkan fungsi sha256() menghasilkan SHA-256 hash dari sebuah string menggunakan crypto.subtle.digest(). Kode tersebut kemudian mencetak nilai hash yang dihasilkan ke dalam console log.

Penting untuk dicatat bahwa kode tersebut hanya berjalan di lingkungan JavaScript yang mendukung Web Crypto API, seperti pada browser modern.

Jika kamu menggunakan JavaScript di luar lingkungan tersebut, misalnya pada sisi server dengan Node.js, kamu harus menggunakan library eksternal seperti crypto-js untuk menghasilkan SHA-256 hash.

Menghasilkan Nilai Hash SHA-256 Pada VueJS

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

Untuk menghasilkan SHA-256 hash pada sisi klien (client-side) menggunakan Vue.js, kamu dapat menggunakan library kriptografi seperti crypto-js. Berikut adalah langkah-langkahnya:

Langkah 1: Instalasi crypto-js Buka terminal dan arahkan ke direktori proyek Vue.js kamu. Jalankan perintah berikut untuk menginstal crypto-js:

npm install crypto-js

Langkah 2: Mengimpor dan Menggunakan crypto-js Di komponen Vue.js yang ingin kamu gunakan, impor dan gunakan crypto-js:

import { SHA256 } from 'crypto-js';

export default {
  // ...
  methods: {
    generateHash(data) {
      const hash = SHA256(data).toString();
      console.log(hash);
    }
  }
};

Langkah 3: Memanggil Fungsi generateHash(), kamu bisa memanggil fungsi generateHash() dengan memberikan data yang ingin di-hash sebagai argumennya.

Contoh di bawah ini menunjukkan bagaimana kamu dapat memanggil fungsi ini dari method lain didalam komponen Vue.js:

export default {
  // ...
  methods: {
    someMethod() {
      const data = 'Hello, World!';
      this.generateHash(data);
    },
    generateHash(data) {
      const hash = SHA256(data).toString();
      console.log(hash);
    }
  }
};

Dalam contoh di atas, setiap kali method someMethod() dipanggil, fungsi generateHash() akan menghasilkan hash SHA-256 dari data yang diberikan dan mencetak hasilnya di konsol.

Pastikan kamu telah mengimpor crypto-js dan mendefinisikan fungsi generateHash() dengan benar di komponen Vue.js kamu sebelum menggunakannya.

Dengan menggunakan crypto-js dan fungsi SHA256()-nya, kamu dapat menghasilkan SHA-256 hash pada sisi klien (client-side) menggunakan Vue.js.

Menghasilkan Nilai Hash SHA-256 Pada NodeJS

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

Di Node.js, kamu bisa menghasilkan hash SHA-256 menggunakan modul bawaan bernama crypto. Berikut adalah contoh penggunaan hash SHA-256 pada Node.js:

const crypto = require('crypto');

const data = 'Hello, World!';

// Membuat objek hash menggunakan algoritma SHA-256
const hash = crypto.createHash('sha256');

// Mengupdate objek hash dengan data yang ingin di-hash
hash.update(data);

// Menghasilkan nilai hash dalam bentuk heksadesimal
const hashedData = hash.digest('hex');

console.log(hashedData);

Dalam contoh di atas, kita mengimpor modul crypto dari Node.js. Kemudian, kita membuat objek hash menggunakan algoritma SHA-256 dengan menggunakan crypto.createHash('sha256').

Setelah itu, kita mengupdate objek hash dengan data yang ingin di-hash menggunakan metode hash.update(data).

Terakhir, kita memanggil hash.digest('hex') untuk menghasilkan nilai hash dalam bentuk heksadesimal.

Hasilnya akan dicetak pada konsol dan akan terlihat sebagai serangkaian karakter heksadesimal yang mewakili nilai hash SHA-256 dari data yang diberikan.

Kamu dapat mengganti nilai data dengan teks atau data apa pun yang ingin kamu hash menggunakan SHA-256.

Menghasilkan Nilai Hash SHA-256 Pada Golang

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

Di Go, kamu bisa menggunakan paket crypto/sha256 untuk menghasilkan hash SHA-256.

Berikut adalah contoh penggunaan SHA-256 hash dalam Go:

package main

import (
    "crypto/sha256"
    "encoding/hex"
    "fmt"
)

func main() {
    data := "Hello, World!"

    // Membuat hash SHA-256
    hash := sha256.Sum256([]byte(data))

    // Mengkonversi hash menjadi string heksadesimal
    hashString := hex.EncodeToString(hash[:])

    fmt.Println("Data:", data)
    fmt.Println("SHA-256 Hash:", hashString)
}

Dalam contoh di atas, kita menggunakan fungsi sha256.Sum256() untuk menghasilkan hash SHA-256 dari data yang diberikan.

Fungsi ini mengambil argumen berupa slice byte dan mengembalikan array byte dengan panjang 32, yang merupakan nilai hash SHA-256.

Selanjutnya, kita menggunakan paket encoding/hex untuk mengonversi nilai hash byte menjadi string heksadesimal yang lebih mudah dibaca dan dicetak. Fungsi hex.EncodeToString() digunakan untuk melakukan konversi tersebut.

Hasilnya akan mencetak nilai hash SHA-256 dalam bentuk string heksadesimal. Contoh di atas akan menghasilkan keluaran berikut:

Data: Hello, World!
SHA-256 Hash: 2ef7bde608ce5404e97d5f042f95f89f1c232871

Dengan menggunakan paket crypto/sha256 dalam Go, kita bisa dengan mudah menghasilkan hash SHA-256 untuk data yang diberikan.

Menghasilkan Nilai Hash SHA-256 Pada Bahasa Python

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

Di Python, kamu bisa menggunakan modul bawaan hashlib untuk menghasilkan nilai hash SHA-256. Berikut adalah contoh penggunaan hash SHA-256 di Python:

import hashlib

# Data yang ingin di-hash
data = "Hello, World!"

# Membuat objek hash SHA-256
sha256_hash = hashlib.sha256()

# Mengupdate objek hash dengan data
sha256_hash.update(data.encode('utf-8'))

# Menghasilkan nilai hash dalam bentuk heksadesimal
hash_result = sha256_hash.hexdigest()

print("SHA-256 Hash:", hash_result)

Output:

....
SHA-256 Hash: 2ef7bde608ce5404e97d5f042f95f89f1c232871
....

Dalam contoh di atas, kita mengimpor modul hashlib dan membuat objek hash SHA-256 dengan hashlib.sha256().

Kemudian, kita mengupdate objek hash dengan data menggunakan metode update(), yang mengambil data dalam bentuk byte dengan menggunakan metode encode('utf-8').

Akhirnya, kita menggunakan metode hexdigest() untuk menghasilkan nilai hash dalam bentuk heksadesimal.

Kamu juga dapat mengganti nilai data dengan data yang ingin kamu hash.

Pastikan untuk mengonversi data nya ke tipe byte terlebih dahulu.

Misalnya, data.encode('utf-8') digunakan untuk mengonversi string menjadi byte menggunakan encoding UTF-8 sebelum mengupdate objek hash.

Menghasilkan Nilai Hash SHA-256 Pada Bahasa Ruby

Mengenal Hash SHA256 Dan Cara Penggunaan Nya Pada Berbagai Bahasa Pemrograman

Di Ruby, kamu dapat menggunakan modul Digest::SHA256 untuk menghasilkan hash SHA-256.

Berikut adalah contoh penggunaan hash SHA-256 pada Ruby:

require 'digest'

data = 'Hello, World!'

hash = Digest::SHA256.hexdigest(data)
puts hash

Outputnya akan menjadi:

861844d6704e8573fec34d967e20bcfef4d04655d5f87fadb899f8a159cc5b48

Di contoh tersebut, kita mengimpor modul Digest dan menggunakan hexdigest dari Digest::SHA256 untuk menghasilkan nilai hash SHA-256 dari string ‘Hello, World!’.

Nilai hash diubah menjadi bentuk heksadesimal dengan panjang 64 karakter.

Kamu juga bisa menggunakan metode digest jika kamu membutuhkan hasil dalam bentuk biner (byte):

require 'digest'

data = 'Hello, World!'

hash = Digest::SHA256.digest(data)
puts hash

Outputnya akan menjadi:

....
"\x86\x18D\xD6pN\x85s\xFE\xC3M\x96~ \xBC\xFE\xF4\xD0FU\xD5\xF8\x7F\xAD\xB8\x99\xF8\xA1Y\xCC[X"
....

Penggunaan modul Digest::SHA256 ini memungkinkan kamu untuk menghasilkan hash SHA-256 dengan mudah dalam bahasa Ruby, baik dalam bentuk heksadesimal atau biner, tergantung kebutuhan aplikasi kamu.

Support Us

Jika artikel ini bermanfaat untuk kamu, atau membantu menyelesaikan masalah yang sedang kamu hadapi, kamu juga bisa dukung kami dengan mengunjungi halaman berikut: https://saweria.co/sangcahayaid

  1. Adam Yordan Adam Yordan

    Misal saya mau hash no ktp menggunakan hash ini yang bakalan disimpan kedalam database, nah untuk balikin nilainya ke nilai awal kalau kita pengen liat gimana mas?

    • kalo hash ga bisa di decrypt/dikembalikan nilai ny mas.. hanya bisa di cocokkan apa nilai hash nya sama atau tidak.. kalo mau dikembalikan perlu disimpan manual ke db..

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: