buenos dias ingenieros
Este código VB.Net es responsable de cifrar una contraseña
Public Function Encrypt(ByVal clave As String) As String ' Defino variables Dim indice As Integer = 1 Dim largo As Integer = 0 Dim final As String = "" largo = Len(Trim(clave)) Dim caracteres(largo) As String For indice = 1 To largo caracteres(indice) = Mid(clave, indice, 1) caracteres(indice) = Chr(Asc(caracteres(indice)) + indice) final = final & caracteres(indice) Next indice Return final End Functiony este sería el código en php que hice pero estoy fallando en alguna parte ya que no obtengo el resultado deseado
public static function encryption($clave){ $indice = 0; $largo = 0; $final = ''; $largo = strlen(trim($clave)); $caracteres = array(); for ($indice; $indice < $largo; $indice++) { $caracteres[$indice] = substr($clave, $indice, 1); $caracteres[$indice] = chr(ord($caracteres[$indice]) + $indice); $final = $final.$caracteres[$indice]; } return $final; }un ejemplo seria que en VB.Net la clave 12345 esta encriptada en 2468: y en PHP la misma clave esta encriptada en 13579
Estaré agradecido con todos los que puedan ayudarme a descubrir dónde estoy fallando y cómo puedo solucionarlo.
Gracias
¡Estás muy, muy cerca! Solo necesita volver a agregar que $indice está basado en uno en VB.Net pero basado en cero en PHP cuando está realizando operaciones matemáticas.
Así que cambia esto:
$caracteres[$indice] = chr(ord($caracteres[$indice]) + $indice);
A esto:
$caracteres[$indice] = chr(ord($caracteres[$indice]) + ($indice + 1));