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.TextImports System.Security.CryptographyPublic Class Form1Private Sub btnHitungChecksum_Click( _ByVal sender As System.Object, _ByVal e As System.EventArgs) _Handles btnHitungChecksum.ClickDim checksum As Byte( )Dim counter As IntegerDim hasil As String' ----- Hitung checksum untuk file.Trychecksum = HitungFileChecksum(txtFileInput.Text)Catch ex As ExceptionMsgBox("Terjadi error saat " & _"menghitung checksum:" & _vbCrLf & vbCrLf & ex.Message)Exit SubEnd Try' ----- Menyiapkan checksum untuk ditampilkan.If (checksum Is Nothing) Thenhasil = "Tidak ada checksum."Else' ----- Menyesuaikan checksum supaya lebih mudah dibacahasil = ""For counter = 0 To checksum.Length - 1hasil &= String.Format("{0:X2}", _checksum(counter))Next counterEnd If' ----- Tampilkan hasil checksum.txtChecksum.Text = hasilEnd SubPublic Function HitungFileChecksum( _ByVal filePath As String) As Byte( )' ----- Menggunakan fungsi hash HMACSHA1' untuk memperhitungkan checksum dari sebuah file.Dim fungsiHash As HMACSHA1Dim dasarHash( ) As ByteDim nilaiHash( ) As ByteDim inputStream As IO.Stream' ----- Memastikan file input ada.If (My.Computer.FileSystem.FileExists(filePath) _= False) ThenThrow New IO.FileNotFoundExceptionReturn NothingEnd 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 checksumnilaiHash = fungsiHash.ComputeHash(inputStream)' ----- Menutup stream inputinputStream.Close( )' ----- Mengembalikan nilai sebagai array ByteReturn nilaiHashEnd FunctionEnd 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