Buonasera al forum.

Vorrei utilizzare l'algoritmo RC4 per criptare al momento della registrazione in un db mysql l'account e la password; ho trovato questo esempio ma vorrei capire perchè chiede una key insieme al messaggio da criptare.

Non è possibile farlo funzionare soltanto inserendo il msg che poi non sarebbe altro che la psw utente?

Il form:

codice:
<%Option Explicit%>

<%
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)%>" size="20">

			

			Message:

			<TEXTAREA name="Message" rows="6" cols="50"><%=Server.HTMLEncode(lStrResult)%></TEXTAREA>
			

			<INPUT type="Submit" value="Apply RC4">
		</FORM>
	</BODY>
</HTML>
la funzione RC4:

codice:
<%
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
%>