Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/03/2011, 15:51
Avatar de culd
culd
 
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 21 años, 4 meses
Puntos: 19
Respuesta: Llevar función de VB6 a PHP

Código vb:
Ver original
  1. Dim UserKey As String
  2.     Dim UserKeyX As String
  3.     Dim Temp     As Integer
  4.     Dim Times    As Integer
  5.     Dim i        As Integer
  6.     Dim J        As Integer
  7.     Dim n        As Integer
  8.     Dim rtn      As String

Simple declaracion de variables


Código vb:
Ver original
  1. UserKey = "IRONMAN"

Clave que se va a usar para encriptar...

Código vb:
Ver original
  1. n = Len(UserKey)

n variable del tipo INTERO, que guarda la cantidad de caracteres de la variable UserKey.. (que serian 7)


Código vb:
Ver original
  1. ReDim UserKeyASCIIS(1 To n)

Redimensiona el array... Un array es una coleccion de datos del mismo tipo ...
Osea que el array va a tener de 1 a 7
Código vb:
Ver original
  1. For i = 1 To n
  2.         UserKeyASCIIS(i) = Asc(Mid$(UserKey, i, 1))
  3.     Next

Usa un FOR, para ir recorriendo caracter por caracter de la palabra "IRONMAN" y en el array va guardando el codigo ASCII de cada caracter en casa posicionb del array


Código vb:
Ver original
  1. ReDim TextASCIIS(Len(text)) As Integer
  2.     For i = 1 To Len(text)
  3.         TextASCIIS(i) = Asc(Mid$(text, i, 1))
  4.     Next

Similiar a todo lo anterior, pero lo que usa ahora es el "text" que se le envia por los parametros de la funcion


Código vb:
Ver original
  1. If Action = ENCRYPT Then
  2.        For i = 1 To Len(text)
  3.            J = IIf(J + 1 >= n, 1, J + 1)
  4.            Temp = TextASCIIS(i) + UserKeyASCIIS(J)
  5.            If Temp > 255 Then
  6.               Temp = Temp - 255
  7.            End If
  8.            rtn = rtn + Chr$(Temp)
  9.        Next


Verifica si hay que ENCRIPTAR...
SI J+1 >= n ENTONCES
J=1
SINO
J = J+1
FIN SI

A la variable temporal suma los valores ascii que previamente guardo en el array...
Pero suma segun la posicion de I y de J

Si Temp > 255 Significa que supero la cantidad maxima del codigo ascii
rtn, va acumulando el caracter segun el codigo ascii generado...


Código vb:
Ver original
  1. ElseIf Action = DECRYPT Then
  2.        For i = 1 To Len(text)
  3.            J = IIf(J + 1 >= n, 1, J + 1)
  4.            Temp = TextASCIIS(i) - UserKeyASCIIS(J)
  5.            If Temp < 0 Then
  6.               Temp = Temp + 255
  7.            End If
  8.            rtn = rtn + Chr$(Temp)
  9.        Next
  10.     End If
  11.     ED = rtn

Similar que el anterior, pero haciendo a la inversa, para volver los caracteres anteriores...

Es un metodo muy sensillo de encriptacion, nada fuera de lo comun que se puede pasar facilmente a cualquier lenguaje