Estoy tratando de implementar un algoritmo de cifrado de contraseñas utilizado en el servidor de sincronización móvil Funambol en PHP, pero estoy teniendo dificultades ya que provengo de un fondo que no es Java. El código en sí mismo parece simple:Implementación de este algoritmo de cifrado de contraseñas Java en PHP
encryptionKey = "Omnia Gallia in tres partes divida est";
byte[] newValue = new byte[24];
System.arraycopy(encryptionKey, 0, newValue, 0, 24);
encryptionKey = newValue;
KeySpec keySpec = new DESedeKeySpec(encryptionKey);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESEde");
Cipher cipher = Cipher.getInstance("DESEde");
SecretKey key = keyFactory.generateSecret(keySpec);
cipher.init(Cipher.ENCRYPT_MODE, key);
cipherBytes = cipher.doFinal(plainBytes);
No estoy necesariamente en busca de una solución completa, más punteros en lo que puedo utilizar en el lado de PHP. ¿Puede mcrypt manejar esto y en qué medida? ¿Qué más necesito? ¿Esto es factible en PHP?
Para lo curioso: estoy construyendo una interfaz para el servidor Funambol y me gustaría poder agregar usuarios de la interfaz mediante PHP.
Parece simple porque el algoritmo está utilizando algunos marcos. Un primer paso sería ver si hay un PHP equivalente a Triple DES (ver http://en.wikipedia.org/wiki/Triple_DES). Si es posible, podría considerar agregar alguna interfaz externa en el lado de Java que se pueda llamar directamente a través de PHP. –
Ver http://php.net/manual/en/function.mcrypt-encrypt.php Permite DES triple. – Artefacto
Creo que la cita de Julio César debe ser 'divisa' y no' divida'; en cualquier caso, es: 'Gallia est omnis divisa en partes tres' de http://www.thelatinlibrary.com/caesar/gall1.shtml - - Aunque probablemente sea más complicado usar una versión incorrecta: p –