Pada sebuah aplikasi atau website sering digunakan fungsi Encrypt dan Decrypt untuk keamanan sebuah teks atau string. Contohnya dalam pembuatan password login user diweb biasanya digunakan MD5 untuk melakukan Encryption pada password login user tersebut. Pastinya hal itu dilakukan untuk keamanan akun user.
Tapi kali ini yang akan saya bahas adalah Encrypt & Decrypt String di Vb.Net. Pada dasarnya Encrypt dilakukan untuk mengubah sebuah string menjadi karakter yang tak bisa dibaca, hal ini juga bisa diterapkan di .ini file misal config.ini atau my.ini file dan juga password yang akan disimpan ke database yang sifatnya rahasia.
Jadi terdapat dua fungsi yang akan digunakan yaitu Encrypt & Decrypt.
Encryption sendiri itu berfungsi mengubah teks atau yang lebih dikenal sebagai string menjadi karakter yang tak terbaca, Sedangkan Decryption sendiri mengubah hasil Encryption kebentuk aslinya.
Caranya ?
Buat sebuah modul, disini saya menamakan modulnya = mEncrypt.vb maka pada bagian codenya akan seperti berikut :
Module mEncrypt
End Module
Import system io dan system security cryptography.
Imports System.IO
Imports System.Security.Cryptography
Module mEncrypt
End Module
Buat sebuah Key random yang akan di encode dan digabungkan dengan string yang akan di Encrypt.
Imports System.IO
Imports System.Security.Cryptography
Module mEncrypt
Dim MyKey As String = "Isi teks apa saja disini"
End Module
Selanjutnya buat fungsi Encrypt dan Decrypt, sehingga hasil akhirnya akan seperti berikut.
Imports System.IO
Imports System.Security.Cryptography
Module mEncrypt
Dim MyKey As String = "Isi teks apa saja disini"
Public Function EncryptText(ByVal SourceText As System.String) As System.String
Dim IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
Dim strResult As System.String = ""
Try
Dim bykey() As Byte = System.Text.Encoding.UTF8.GetBytes(Strings.Left(MyKey, 8))
Dim InputByteArray() As Byte = System.Text.Encoding.UTF8.GetBytes(SourceText)
Dim des As New DESCryptoServiceProvider
Dim ms As New MemoryStream
Dim cs As New CryptoStream(ms, des.CreateEncryptor(bykey, IV), CryptoStreamMode.Write)
cs.Write(InputByteArray, 0, InputByteArray.Length)
cs.FlushFinalBlock()
strResult = Convert.ToBase64String(ms.ToArray())
Catch ex As Exception
Throw New Exception
End Try
Return strResult
End Function
Public Function DecryptText(ByVal Chippedtexta As System.String) As System.String
Dim iv() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
Dim inputbytearray(Chippedtexta.Length) As Byte
Dim strresult As System.String
Try
Dim bykey() As Byte = System.Text.Encoding.UTF8.GetBytes(Strings.Left(mykey, 8))
Dim des As New DESCryptoServiceProvider
inputbytearray = Convert.FromBase64String(Chippedtexta)
Dim ms As New MemoryStream
Dim cs As New CryptoStream(ms, des.CreateDecryptor(bykey, iv), CryptoStreamMode.Write)
cs.Write(inputbytearray, 0, inputbytearray.Length)
cs.FlushFinalBlock()
Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8
strresult = encoding.GetString(ms.ToArray())
Return strresult
Catch ex As Exception
Throw New Exception
End Try
End Function
End Module
Untuk penggunaannya tinggal memanggil fungsinya, misalkan yang ingin di Encrypt = (teks yang akan diencrypt) Dan MyKey = Haysia Development
Untuk lebih jelasnya saya akan contohkan di project vb.net, Buat Project dan tambahkan sebuah form dengan nama EncryptDecrypt.vb dan tambahkan 2 textbox dan 1 button, tampilannya seperti berikut.
Double klik pada tombol Encrypt untuk masuk ke code dan isi dengan kode berikut.
Public Class EncryptDecrypt
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text = "" Then
MsgBox("Teks kosong !!!")
Else
TextBox2.Text = EncryptText(TextBox1.Text)
End If
End Sub
End Class
Saat fungi Encrypt dijalankan maka hasilnya akan seperti berikut.
Pada hasilnya terlihat campuran huruf besar dan kecil, nomor dan karakter.
Hasil = Sa0RtAMCKy6hQo7sN8oBSnYhEz3NmKJCLbh5bzdFZKc=
Sekian tutorial kali ini, semoga bermanfaat
Artikel Dipost Oleh Hariadi
Seorang freelancer website and software developer, gemar dengan ilmu seputar IT serta penuh semangat untuk belajar.
Copyright © 2014 - 2024. All rights reserved By Haysia Development.
2 Komentar