Hingga suatu hari, tanggal 9 September 1994, teknik enkripsi ini diposting seorang tidak dikenal via internet ke Cyperpunks.
RC4 menggunakan suatu key panjang variabel mulai dari 1 hingga 256 byte, yang menginisialisasi suatu bagan tabel 256 byte. Tabel tersebut digunakan untuk generasi berikutnya dari byte yang diacak sedemikian rupa, dan kemudian meneruskan turunan byte acak palsu yang berupa XOR dengan plaintext yang menghasilkan ciphertext. Element lainnya dalam bagan tabel dapat diganti setidaknya satu kali.
Key RC4 seringkali dibatasi hingga 40 bit, namun adakalanya digunakan sebagai key 128 bit. Key RC4 ini Memiliki kemampuan menggunakan key antara 1 dan 2048 bit. RC4 digunakan pada banyak paket software komersil seperti Lotus Notes dan Oracle Secure SQL. Juga merupakan bagian dari Spesifikasi Seluler.
Berikut ini akan saya contohkan cara mengimplementasikannya pada bahasa ASP. Teknik Enkripsi dan Dekripsi data ini memerlukan dua buah file .asp yaitu:
Login.asp
<%@ Language=VBScript %>
<%Option Explicit%>
<%
Dim lStrKunci
Dim lStrDataAnda
Dim lStrResult
If Request.QueryString("Action") = "Dekripsi" Then
lStrKunci = Request.Form("Kunci")
%>
Data yang terenkripsi:
<%=Request.Form("enkripsi")%>
Data yang terdekripsi:
<%Else
If Not Request.Form = "" Then
lStrKunci = Request.Form("Kunci")
lStrDataAnda = Request.Form("DataAnda")
lStrResult = Encryptor(lStrDataAnda, lStrKunci)
End If
%>
Metode Enkripsi
Script ini mengenkripsi dan dekripsi pesan dengan algoritma Encryptor.asp, masukkan password dan pesan yang akan dienkripsi ke kotak isian dibawah ini.
<%End If%>
Sedangkan file yang kedua, adalah untuk mengenkripsi:
Encryptor.asp
<%
'Penggunaan: Dalam mengenkripsi data pada string SQL, gunakan metode enkripsi
'Sedangkan untuk mendekripsi data yang diterima dari SQL, gunakan metode Dekripsi
'Contoh:
'SQLCommand = "SELECT * FROM DatabaseAnda WHERE User = 'Admin' AND Password = "
' SQLCommand = SQLCommand & "'" & Encrypt("Password","123ha%&:>712") & "';"
Function Enkripsi(DataAnda, KunciEnkripsi)
Dim Temp
Dim Num
Dim i
Dim Char
DataAnda = Encryptor(DataAnda,KunciEnkripsi)
Temp=""
For i = 1 to Len(DataAnda)
Char = Mid(DataAnda,i,1)
Num = Asc(Char)
If i <> 1 Then
Temp = Temp & "." & Num
Else
Temp = Temp & Num
End If
Next
Enkripsi=Temp
End Function
Function Dekripsi(DataAnda, KunciEnkripsi)
Dim Nums
Dim i
Dim Temp
Temp=""
Nums = Split(DataAnda,".",-1,1)
For i = 0 to uBound(Nums)
Temp = Temp & chr(Nums(i))
Next
DataAnda = Encryptor(Temp,KunciEnkripsi)
Dekripsi = DataAnda
End Function
'----------------------------------------------------------------------------------
'Hak Cipta Code Algorithma dibawah ini oleh Lewis Moten (http://www.lewismoten.com)
'Code Algorithma Encryptor Enkripsi/Dekripsi milik Lewis Moten:
Function Encryptor(ByRef pStrDataAnda, ByRef pStrKey)
Dim lBytAsciiAry(255)
Dim lBytKeyAry(255)
Dim lLngIndex
Dim lBytJump
Dim lBytTemp
Dim lBytY
Dim lLngT
Dim lLngX
Dim lLngKeyLength
' Validasi data
If Len(pStrKey) = 0 Then Exit Function
If Len(pStrDataAnda) = 0 Then Exit Function
' transfer pengulangan password ke array
lLngKeyLength = Len(pStrKey)
For lLngIndex = 0 To 255
lBytKeyAry(lLngIndex) = Asc(Mid(pStrKey, ((lLngIndex) Mod (lLngKeyLength)) + 1, 1))
Next
' Inisialisasi S
For lLngIndex = 0 To 255
lBytAsciiAry(lLngIndex) = lLngIndex
Next
' Switch nilai dari S di bilangan index dan nilai kunci
lBytJump = 0
For lLngIndex = 0 To 255
' Bilangan index yang di switch
lBytJump = (lBytJump + lBytAsciiAry(lLngIndex) + lBytKeyAry(lLngIndex)) Mod 256
' Lakukan Switch
lBytTemp = lBytAsciiAry(lLngIndex)
lBytAsciiAry(lLngIndex) = lBytAsciiAry(lBytJump)
lBytAsciiAry(lBytJump) = lBytTemp
Next
lLngIndex = 0
lBytJump = 0
For lLngX = 1 To Len(pStrDataAnda)
lLngIndex = (lLngIndex + 1) Mod 256
lBytJump = (lBytJump + lBytAsciiAry(lLngIndex)) Mod 256
lLngT = (lBytAsciiAry(lLngIndex) + lBytAsciiAry(lBytJump)) Mod 256
' Switch Data
lBytTemp = lBytAsciiAry(lLngIndex)
lBytAsciiAry(lLngIndex) = lBytAsciiAry(lBytJump)
lBytAsciiAry(lBytJump) = lBytTemp
lBytY = lBytAsciiAry(lLngT)
' Enkripsi Karakter ...
Encryptor = Encryptor & Chr(Asc(Mid(pStrDataAnda, lLngX, 1)) Xor lBytY)
Next
End Function%>
Sekarang coba Anda jalankan file login.asp, dan lihat gambar yang tampil pada layar komputer saya dibawah ini:
0 komentar:
Posting Komentar