Hola.
Bueno quiero primero que todo dar las gracias a Kelvin por haberme facilitado su método de encriptación para implementarlo de VB en PHP, uff un tedioso pero emociante trabajo.
Quiero explicar como funciona la clase y que métodos deben invocar.
Archivo base donde esta el código de encriptación EnDecryptText.php
Antes de empezar se debe llamar a la clase desde la ruta donde se encuentre, para ello debes definirla de la siguiente forma:
require_once("EnDecryptText.php"); // Abre la instancia EnDecryptText.php.
$EnDecryptText = new EnDecryptText(); // Crea una nueva instancia de EnDecryptText.php.
Una vez hecho lo anterior, es cuestión de utilizar los dos métodos de la clase, los cuales son los siguientes:
Encrypt_Text y Decrypt_Text
Ahora bien como se invocan, veamos un ejemplo utilizando un ciclo for y con un dato venido desde un formulario html.
for ($i = 1; $i <= 12; $i++)
{$sTemp = $EnDecryptText->Encrypt_Text($HTTP_POST_VARS["Chain"]);
echo $sTemp;
// Puedes también usarlo así $sTemp = $EnDecryptText->Encrypt_Text($Chain);
$rText = $EnDecryptText->Decrypt_Text($sTemp);
echo $rText;
}
El símbolo -> denota el apuntador de la clase, el cuál en los dos casos apuntan a las funciones de la clase Decrypt_Text y Encrypt_Text.
Bueno aquí un método más cotidiano programado en VB y PHP, un saludo.
1: '* Private Variable 2: Private UserKeyAscii() As String 3: Private TextAscii() As String 4: 5: Public Function Encrypt(ByVal String1 As String) As String 6: Dim k As Long, Temp As Long, L As Long 7: Dim Rtn As String, iM As Integer 8: 9: '* Función que Encripta. 10: EnCryIni String1 11: iM = 0 12: For k = 1 To Len(String1) 13: L = IIf(L >= Len(String1), 1, L + 1) 14: iM = iM + 1 15: If (iM > Len(UserKey)) Then iM = 1 16: Temp = CLng(TextAscii(L)) + CLng(UserKeyAscii(iM)) 17: If (k > Len(String1)) Then Exit For 18: If (Temp > 255) Then Temp = Temp - 255 19: Rtn = Rtn + Chr$(Temp) 20: Next k 21: Encrypt = Rtn 22: End Function 23: 24: Public Function Decrypt(ByVal String1 As String) As String 25: Dim k As Long, L As Long, Temp As Long 26: Dim Rtn As String, iM As Integer 27: 28: '* Función que quita la Encriptación. 29: EnCryIni String1 30: iM = 0 31: For k = 1 To Len(String1) 32: L = IIf(L >= Len(String1), 1, L + 1) 33: iM = iM + 1 34: If (iM > Len(UserKey)) Then iM = 1 35: Temp = Abs(CLng(UserKeyAscii(iM)) - CLng(TextAscii(L))) 36: If (Temp < 0) Then Temp = Temp + 255 37: Rtn = Rtn + Chr$(Temp) 38: Next k 39: Decrypt = Rtn 40: End Function 41: 42: Private Sub EnCryIni(ByVal Text As String) 43: Dim N As Long, k As Long 44: 45: '* Procedimiento Inicial de la Encriptación. 46: N = Len(UserKey) 47: If Not (N = 0) Then 48: ReDim UserKeyAscii(1 To N) 49: Else 50: Exit Sub 51: End If 52: For k = 1 To N 53: UserKeyAscii(k) = Asc(Mid$(UserKey, k, 1)) 54: Next k 55: ReDim TextAscii(Len(Text)) As String 56: For k = 1 To Len(Text) 57: TextAscii(k) = Asc(Mid$(Text, k, 1)) 58: Next k 59: End Sub 1: class encrypt_vb 2: {var $UserKeyAscii; 3: var $TextAscii; 4: var $UserKey; 5: 6: 7: function encrypt_vb() 8: {$this->UserKeyAscii = array(); 9: $this->TextAscii = array(); 10: $this->UserKey = ''; 11: } 12: 13: //------------------------------------------------------------------------------------ 14: // Encripta una cadena de texto. 15: //------------------------------------------------------------------------------------ 16: // Parámetros 17: //------------------------------------------------------------------------------------ 18: // $String1: Cadena a encriptar. 19: //------------------------------------------------------------------------------------ 20: function Encrypt($String1) 21: {// Función que Encripta. 22: if ($this->EnCryIni($String1) == false) return ''; 23: $iM = 0; 24: $L = 0; 25: for ($k = 1; $k <= strlen($String1); $k++) 26: {if ($L >= strlen($String1)) $L = 1; 27: else $L++; 28: $iM++; 29: if ($iM > strlen($this->UserKey)) $iM = 1; 30: $Temp = $this->TextAscii[$L] + $this->UserKeyAscii[$iM]; 31: if ($k > strlen($String1)) break; 32: if ($Temp > 255) $Temp -= 255; 33: $Rtn .= chr($Temp); 34: } 35: return $Rtn; 36: } 37: 38: //------------------------------------------------------------------------------------ 39: // Desencripta una cadena de texto. 40: //------------------------------------------------------------------------------------ 41: // Parámetros 42: //------------------------------------------------------------------------------------ 43: // $String1: Cadena a desencriptar. 44: //------------------------------------------------------------------------------------ 45: function Decrypt($String1) 46: {// Función que quita la Encriptación. 47: if ($this->EnCryIni($String1) == false) return ''; 48: $iM = 0; 49: $L = 0; 50: for ($k = 1; $k <= strlen($String1); $k++) 51: {if ($L >= strlen($String1)) $L = 1; 52: else $L++; 53: $iM++; 54: if ($iM > strlen($this->UserKey)) $iM = 1; 55: $Temp = abs($this->UserKeyAscii[$iM] - $this->TextAscii[$L]); 56: if ($Temp < 0) $Temp += 255; 57: $Rtn .= chr($Temp); 58: } 59: return $Rtn; 60: } 61: 62: //------------------------------------------------------------------------------------ 63: // Función iniciadora de la encriptación. 64: //------------------------------------------------------------------------------------ 65: // Parámetros 66: //------------------------------------------------------------------------------------ 67: // $Text: Cadena. 68: //------------------------------------------------------------------------------------ 69: function EnCryIni($Text) 70: {// Procedimiento Inicial de la Encriptación. 71: $N = strlen($this->UserKey); 72: if ($N == 0) return false; 73: for ($k = 1; $k <= $N; $k++) 74: {$tmp = ord($this->Mid($this->UserKey, $k, 1)); 75: $this->UserKeyAscii[$k] = $tmp; 76: } 77: for ($k = 1; $k <= strlen($Text); $k++) 78: {$tmp = ord($this->Mid($Text, $k, 1)); 79: $this->TextAscii[$k] = $tmp; 80: } 81: return true; 82: } 83: 84: //------------------------------------------------------------------------------------ 85: // Token principal de la cadena. 86: //------------------------------------------------------------------------------------ 87: // Parámetros 88: //------------------------------------------------------------------------------------ 89: // $Text: Cadena que permite encriptar otra cadena sumando sus carácteres. 90: //------------------------------------------------------------------------------------ 91: function KeyToken($Text) 92: {$this->UserKey = $Text;} 93: 94: //------------------------------------------------------------------------------------ 95: // Devuelve un número especificado de caracteres de una cadena. 96: //------------------------------------------------------------------------------------ 97: // Parámetros 98: //------------------------------------------------------------------------------------ 99: // $tmp: Cadena. 100: // $start: Posición inicial en la cadena. 101: // $length: Cantidad de carácteres de izquierda a derecha. 102: //------------------------------------------------------------------------------------ 103: function Mid($tmp, $start, $length = '') 104: {$start -= 1; 105: if (is_string($length) == true) $length = strlen($tmp); 106: $str = substr($tmp, $start, $length); 107: return $str; 108: } 109: }