Transcribir funcion de encrypt de VB a PHP

Blacksep

Hola! Buenas a todos.

Abro el post por ver si en la comunidad alguien es capaz de darme un poco de guía... estoy tratando de pasar un par de funciones de encriptado y desencriptado de un string o password de VB a PHP. El cifrado es AES 128 CBC y a la función le paso una key que es una constante que tengo asignada y el texto/password que se encripta. En php lo puedo hacer sin problemas por que es mi lenguaje pero son dos funciones que se me han pasado construidas en VB que no tengo ni repajolera y debo adaptarlas a PHP y ando algo perdido. El código sería algo así:

spoiler

Si alguien tiene alguna pista os lo agradeceré y si no igualmente por molestaros en leer el hilo. Un saludo.

Soltrac

Si sabes encriptar en AES 128 CBC en php cual es el problema?

La función es clara, recibe un string en base64, le quita el base64, lo encripta, y lo devuelve convertido de nuevo en base64

Edit, perdón, devuelve el IV concatenado con el resultado

1 respuesta
Blacksep

#2 El problema es que con la función de vb por la libreria que tiene de AesCryptoServiceProvider no sé o no puedo imitarlo con openssl en php, en teoria lo cifro con una key y lo encripto con AES pero al no asignarle la misma longitud, no queda como quiero (y para desencriptar estoy en las mismas claro)

De VB no tengo ni idea y no me he dedicado a este tipo de funciones nunca o sea que estoy un poco verde xD a pesar de intentar buscar solución.

Thnx de todos modos por la respuesta :D

Soltrac

La misma longitud?

A ver, no sé cómo se hace en PHP pero no tienes q imitar como lo hace vb, la encriptacion es un algoritmo estándar y cada lenguaje pues tiene una función a su manera.

Pega tu código de PHP a ver

1 respuesta
Blacksep

#4

spoiler

La cosa es que la func del VB lo concatena con

spoiler

Y necesito poder saber cómo encriptarla pq las debo luego poder desencriptar tal cual queda encriptada como el ejemplo de VB. Sorry por la chapa y gracias de nuevo xD

1 respuesta
Soltrac

#5 te falta concatenar con el base64 del IV q lo hace al final

1 respuesta
Blacksep

#6 Thnx

Ya lo saqué. El problema era que las librerias de VB/Microsoft que gasta esa función generan el IV sin especificar el número de bytes y openssl de php pide expresamente la cantidad. Al final he definido este parámetro en ambos programas y puedo descifrar lo cifrado en VB.

Gracias por tu interés ^^

Usuarios habituales

  • Blacksep
  • Soltrac