RC4 ŞİFRELEME ALGORİTMASI
RC4, bir anahtar ile bir metni şifrelemeye yarayan bir şifreleme algoritmasıdır,
yaygın olarak kullanılır ve genelde mesajları şifrelemede kullanılır.
RC4 un ASP ye uyarlanmıs halini sizlere aktarayım ;
RC4 şifreleme algoritma kodu :
<%
Function RC4(ByRef pStrMessage, ByRef pStrKey)
Dim lBytAsciiAry(255)
Dim lBytKeyAry(255)
Dim lLngIndex
Dim lBytJump
Dim lBytTemp
Dim lBytY
Dim lLngT
Dim lLngX
Dim lLngKeyLength
’ Validate data
If Len(pStrKey) = 0 Then Exit Function
If Len(pStrMessage) = 0 Then Exit Function
’ transfer repeated key to array
lLngKeyLength = Len(pStrKey)
For lLngIndex = 0 To 255
lBytKeyAry(lLngIndex) = Asc(Mid(pStrKey, ((lLngIndex) Mod (lLngKeyLength)) + 1, 1))
Next
’ Initialize S
For lLngIndex = 0 To 255
lBytAsciiAry(lLngIndex) = lLngIndex
Next
’ Switch values of S arround based off of index and Key value
lBytJump = 0
For lLngIndex = 0 To 255
’ Figure index to switch
lBytJump = (lBytJump + lBytAsciiAry(lLngIndex) + lBytKeyAry(lLngIndex)) Mod 256
’ Do the switch
lBytTemp = lBytAsciiAry(lLngIndex)
lBytAsciiAry(lLngIndex) = lBytAsciiAry(lBytJump)
lBytAsciiAry(lBytJump) = lBytTemp
Next
lLngIndex = 0
lBytJump = 0
For lLngX = 1 To Len(pStrMessage)
lLngIndex = (lLngIndex + 1) Mod 256 ’ wrap index
lBytJump = (lBytJump + lBytAsciiAry(lLngIndex)) Mod 256 ’ wrap J+S()
’ Add/Wrap those two
lLngT = (lBytAsciiAry(lLngIndex) + lBytAsciiAry(lBytJump)) Mod 256
’ Switcheroo
lBytTemp = lBytAsciiAry(lLngIndex)
lBytAsciiAry(lLngIndex) = lBytAsciiAry(lBytJump)
lBytAsciiAry(lBytJump) = lBytTemp
lBytY = lBytAsciiAry(lLngT)
’ Character Encryption ...
RC4 = RC4 & Chr(Asc(Mid(pStrMessage, lLngX, 1)) Xor lBytY)
Next
End Function
%>
şeklinde olup bunu kullanmak için yukardaki kodu herhangi bir isimle uzantısı ASP olucak sekilde kaydedin.. [ örnek : rc4_algoritma.asp ]
daha sonra
- Kod:
-
<%Option Explicit%>
<!--#include file="rc4_algoritma.asp"-->
<%
Dim lStrKey
Dim lStrMessage
Dim lStrResult
If Not Request.Form = "" Then
lStrKey = Request.Form("Key")
lStrMessage = Request.Form("Message")
lStrResult = RC4(lStrMessage, lStrKey)
End If
%>
<html>
<head>
<title>RC4 Encryption</title>
</head>
<bOdy>
<form method="Post">
Key:
<input name="Key" value="<%=Server.HTMLEncode(lStrKey)%>"><BR>
<BR>
Message:<BR>
<textarea name="Message" rows="6" cols="50"><%=Server.HTMLEncode(lStrResult)%></textarea>
<BR>
<input type="Submit" value="Encode / Decode">
</form>
</bOdy>
</html>
bu kodun gorevide RC4 algoritmasını kullanarak girilen metinleri girilen anahtar degerine gore şifrelemektir. Bu kodu örnegin rc4_olusturucu.asp olarak kaydedit, ASP destekli bir makinede rc4_olusturucu.asp yi calıstırınız.
Dikkat etmeniz gereken kodun ASP oldugu, iki kodunda yanyana durması gerektiği ve <!--#include file="rc4_algoritma.asp"--> tagının dogru yapılmıs olup olmadıgıdır