Huy guuyysss (pake nadanya cak lontong di iklan sprite***)(map
sensornya telat maksudnya ***sprite)(skrg kecepatan.. bodo amat lah)
**** *********** *******
*********** ** ***** ******** *********** ****** ******** ****** ****** * **********(skrg
malah semua tulisan gue yang ke sensor) hahaa lanjut..
Kali ini saya akan posting coding yang berkaitan dengan
Cryptography Tripledes dengan menggunakan tentunya Microsoft Excel Macro (VBA).
Apa itu Kriptografi (Cryptography)?Apa itu Tripledes?
Tripledes adalah salah satu sistem enkripsi berlapis tiga dari sistem yang sebelumnya sudah ada, yaitu DES (Data Encryption Standard). Triple DES lebih aman dari DES, karena mengalami enkripsi tiga kali. Tau kan gue.. iya lah copy-an dari Wikipedia hahahaa lebih lengkapnya klik disini ya
Sudah lah.. langsung saya.. kita sambit.. hhaaa
- Buka Microsoft Excel
- Buka VBA Editor. Ketikan atau pastekan atau apalah - apalah codingan berikut
Option Explicit
' set KEY nya.. ini digunakan untuk enkrip dan dekrip data
' key harus kelipatan 8
Private Const KEY_TRIPLEDES As String = "jayalahindonesia"
' set IV(Initialization vector) nya..
' saya kurang paham apa itu.. mereka juga sering menyebut starting vector tapi saya kurang tahu..
Private Const IV_TRIPLEDES As String = "garuda01"
Private Function EncryptData(ByVal plain_text As String) As String
' deklarasi object untuk converter ke nilai byte
Dim objEncodingUTF8 As Object
' deklarasi object untuk crypto provider nya
Dim cryptoProvider As Object
' create object dari class System.Text.UTF8Encoding
Set objEncodingUTF8 = CreateObject("System.Text.UTF8Encoding")
' create object untuk provider cryptography nya
Set cryptoProvider = CreateObject("System.Security.Cryptography.TripleDESCryptoServiceProvider")
' set key dan iv dalam bentuk byte array
' ini fungsi dari objEncodingUTF8.GetBytes_4 untuk merubah data string menjadi bentuk byte array
cryptoProvider.Key = objEncodingUTF8.GetBytes_4(KEY_TRIPLEDES)
cryptoProvider.iv = objEncodingUTF8.GetBytes_4(IV_TRIPLEDES)
Dim resAsByteArray() As Byte
' proses encrypt
' yang dimasukan data clear nya, lalu index mulai dari array, dan panjang data
' perintahya -----------------------------------------(convert ke byte array ----(data clear), index awal, panjangnya data)
' cryptoProvider.CreateEncryptor().TransformFinalBlock(objEncodingUTF8.GetBytes_4(plain_text), 0, Len(plain_text))
resAsByteArray = cryptoProvider.CreateEncryptor().TransformFinalBlock(objEncodingUTF8.GetBytes_4(plain_text), 0, Len(plain_text))
' reset variable
Set cryptoProvider = Nothing
Set objEncodingUTF8 = Nothing
' karena procedure ini berbentuk function jadi harus dikembalikan
' HexaToHexString digunakan untuk mengembalikan data dalam bentuk string
' dan merubah nilai byte kedalam bentuk hexadecimal
' ada juga yang dikembalikan kedalam XMLBase64
EncryptData = HexaToHexString(resAsByteArray)
End Function
Private Function DecryptData(ByVal encrypt_text As String) As String
' sama seperti proses enkrip ya
' hanya beda diproces enkrip nya kali ini kita pakai dekrip untuk mengembalikan data
Dim objEncodingUTF8 As Object
Dim cryptoProvider As Object
Set objEncodingUTF8 = CreateObject("System.Text.UTF8Encoding")
Set cryptoProvider = CreateObject("System.Security.Cryptography.TripleDESCryptoServiceProvider")
cryptoProvider.Key = objEncodingUTF8.GetBytes_4(KEY_TRIPLEDES)
cryptoProvider.iv = objEncodingUTF8.GetBytes_4(IV_TRIPLEDES)
Dim encryptedByteData() As Byte
encryptedByteData = HexaFromHexString(encrypt_text)
' bedanya hanya disini
' disini proses nya pakai CreateDecryptor
' yang dimasukan data ecnkrip nya, lalu index mulai dari array, dan panjang array ditambah 1
' perintahya -----------------------------------------(data enkrip------, index awal, panjang array + 1)
' cryptoProvider.CreateDecryptor().TransformFinalBlock(encryptedByteData, 0, UBound(encryptedByteData) + 1)
Dim resAsByteArray() As Byte
resAsByteArray = cryptoProvider.CreateDecryptor().TransformFinalBlock(encryptedByteData, 0, UBound(encryptedByteData) + 1)
Set cryptoProvider = Nothing
' jangan lupa untuk di kembalikan ke dalam string karena balikan dari provider crypto adalah byte array
DecryptData = objEncodingUTF8.GetString(resAsByteArray)
Set objEncodingUTF8 = Nothing
End Function
Private Function HexaFromHexString(ByVal hex_string As String) As Byte()
Dim i As Long
Dim iHexLen As Long
iHexLen = CLng(Len(hex_string) / 2) - 1
ReDim dummyArrayOut(0 To iHexLen) As Byte
' mengubah hexadecimal ke byte
For i = 0 To iHexLen
dummyArrayOut(i) = Val("&H" & Mid(hex_string, (i * 2) + 1, 2))
Next i
HexaFromHexString = dummyArrayOut
End Function
Private Function HexaToHexString(hex_bytearray() As Byte) As String
Dim iVar As Variant
Dim strH As String
Dim strHexD As String
' mengubah byte ke hexadecimal
For Each iVar In hex_bytearray
strHexD = Hex(iVar)
strH = strH & IIf(Len(strHexD) = 1, "0" & strHexD, strHexD)
Next
HexaToHexString = strH
End Function
- sebagai contohnya:
- Enkrip "saya orang indonesia"
- Setelah diklik tombol "Encrypt", kata "saya orang indonesia" menjadi "8293487F61C34CB8BAB4BCF39419534698D79E9B309304C0"
- Untuk mengembalikan klik tombol "Decrypt"
bisa juga di download tools nya disini
Semoga bermanfaat, jangan lupa untuk dikembangkan
Terimakasih,
Comments
Post a Comment