Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created July 23, 2019 17:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/31fac53f43328fd5b0a3c05a9d865b1b to your computer and use it in GitHub Desktop.
Save parzibyte/31fac53f43328fd5b0a3c05a9d865b1b to your computer and use it in GitHub Desktop.
Descifrar un archivo con PHP usando contraseña de usuario https://parzibyte.me/blog
<?php
/**
* Descifrar un archivo con php-encryption; usando una contraseña
* en lugar de la clave
*
* https://parzibyte.me/blog
*
*/
require_once "vendor/autoload.php";
use Defuse\Crypto\Exception\EnvironmentIsBrokenException;
use Defuse\Crypto\Exception\IOException;
use Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException;
use Defuse\Crypto\File;
$password = "hunter2";
// Cualquier archivo es válido
// El archivo que se va a descifrar
$rutaArchivoEntrada = __DIR__ . "/script.cifrado.js";
// El archivo de salida; es decir, el que estará descifrado
$rutaArchivoSalida = __DIR__ . "/script.js";
try {
File::decryptFileWithPassword($rutaArchivoEntrada, $rutaArchivoSalida, $password);
echo "Archivo $rutaArchivoEntrada descifrado dentro de $rutaArchivoSalida";
// Opcionalmente podrías eliminar el encriptado:
# unlink($rutaArchivoEntrada);
# El manejo de excepciones es opcional ;)
} catch (IOException $e) {
echo "Error leyendo o escribiendo archivo. Verifica que el archivo de entrada exista y que tengas permiso de escritura";
} catch (EnvironmentIsBrokenException $e) {
echo "El entorno está roto. Normalmente es porque la plataforma actual no puede encriptar el archivo de una manera segura";
} catch (WrongKeyOrModifiedCiphertextException $e) {
echo "La clave es errónea o alguien la intentó modificar, cuidado";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment