Buatlah sebuah Windows Form, letakkan dua buah TextBox control dan diberi nama txtFileInput dan txtChecksum,dan sebuah Button dengan nama btnHitungChecksum. Buat property ReadOnly pada txtChecksum menjadi True. Tambahkan label untuk memperjelas tampilan program.
Silahkan copy-paste coding berikut ini ke project anda
Imports System.Text Imports System.Security.Cryptography Public Class Form1 Private Sub btnHitungChecksum_Click( _ ByVal sender As System. Object , _ ByVal e As System.EventArgs) _ Handles btnHitungChecksum.Click Dim checksum As Byte ( ) Dim counter As Integer Dim hasil As String ' ----- Hitung checksum untuk file. Try checksum = HitungFileChecksum(txtFileInput.Text) Catch ex As Exception MsgBox( "Terjadi error saat " & _ "menghitung checksum:" & _ vbCrLf & vbCrLf & ex.Message) Exit Sub End Try ' ----- Menyiapkan checksum untuk ditampilkan. If (checksum Is Nothing ) Then hasil = "Tidak ada checksum." Else ' ----- Menyesuaikan checksum supaya lebih mudah dibaca hasil = "" For counter = 0 To checksum.Length - 1 hasil &= String .Format( "{0:X2}" , _ checksum(counter)) Next counter End If ' ----- Tampilkan hasil checksum. txtChecksum.Text = hasil End Sub Public Function HitungFileChecksum( _ ByVal filePath As String ) As Byte ( ) ' ----- Menggunakan fungsi hash HMACSHA1 ' untuk memperhitungkan checksum dari sebuah file. Dim fungsiHash As HMACSHA1 Dim dasarHash( ) As Byte Dim nilaiHash( ) As Byte Dim inputStream As IO.Stream ' ----- Memastikan file input ada. If (My.Computer.FileSystem.FileExists(filePath) _ = False ) Then Throw New IO.FileNotFoundException Return Nothing End If ' ----- Mempersiapkan kunci hash. Anda harus menggunakan ' kunci yang sama tiap kali memperhitungkan, jika tidak ' hasil yang didapat akan berbeda. dasarHash = ( New UnicodeEncoding).GetBytes( "chandra" ) ' ----- Membuat objek SHA. fungsiHash = New HMACSHA1(dasarHash, True ) ' ----- Membuka file sebgaia stream. inputStream = New IO.FileStream(filePath, _ IO.FileMode.Open, IO.FileAccess.Read) ' ----- Memperhitungkan nilai checksum nilaiHash = fungsiHash.ComputeHash(inputStream) ' ----- Menutup stream input inputStream.Close( ) ' ----- Mengembalikan nilai sebagai array Byte Return nilaiHash End Function End Class |
Untuk menggunakan program silahkan ketikkan lokasi file di txtFileInputn dan tekan btnHitungChecksum. Checksum dari file tersebut akan tampil di txtChecksum.
Checksum sangatlah berguna saat anda ingin mengetahui apakah dua buah file identik atau tidak, dan biasanya dihasilkan melalui algoritma hashing.
Didalam .NET Framework terdapat beberapa algoritma hashing dan enkripsi di namespace System.Security.Cryptography, dan yang kita gunakan adalah HMACSHA1 (Hash-based Message Authentication Code, atau HMAC melalui fungsi SHA1).
No comments:
Post a Comment