Archivo

Archivo para la categoría ‘Código’

Script para renombrar ficheros (PHP)

Martes, 11 de Noviembre de 2008

Pues bueno, yo bajo bastante anime, series, etc… y no me gusta tener nombres asquerosos en los ficheros. Debido a esto he tenido que idear un scriptillo para renombrar ficheros en PHP.

Se basa en una expresión regular para encontrar el número del capítulo en cuestión, y a partir de ahí generar un nombre nuevo, limpio y bonito :)

En este ejemplo, se han usado las dos temporadas de Code Geass, donde los ficheros se llamaban “Code_Geass_.1.by_anime_(x-264).mp4″ (vamos, feo de narices) xD

Leer más…

Sonycrow Código, Ejemplo, Php, Programación, Scripts

Cifrado con Rijndael (AES) simétrico en PHP

Lunes, 22 de Septiembre de 2008

A continuación, un ejemplo funcional de un cifrado de datos simétrico usando Rijndael en su modo de 256bits.

<?php
header(“Content-Type: text/plain; charset=utf-8″);

# Creamos una clave de 256bits o 32 caracteres
$key = md5(“Clave para el cifrado de datos `12345`!·$%&/()=”);

# Cadena a encriptar
$data = “Estamos aquí reunidos para ver el funcionamiento de un cifrado simétrico. ALE!”;

/**
* PROCESO DE CIFRADO
**/
# Inicializa el mudulo de cifrado
$td = mcrypt_module_open(‘rijndael-256′, ”, ‘ofb’, ”);

# Crea el vector de inicializacion y establece el tamaño de la clave (aleatorio)
$vi = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);

# Inicializa el cifrado
mcrypt_generic_init($td, $key, $vi);

# Cifra los datos
$encryptedData = mcrypt_generic($td, $data);

# Termina el manejador de cifrado y cierra el modulo
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

# Muestra el cifrado
echo “Cifrado:\n{$encryptedData}\n\n”;

/**
* PROCESO DE DESCIFRADO
**/
# Inicializa el mudulo de cifrado
$td = mcrypt_module_open(‘rijndael-256′, ”, ‘ofb’, ”);

# Inicializa el cifrado
mcrypt_generic_init($td, $key, $vi);

# Crea el vector de inicializacion y establece el tamaño de la clave (aleatorio)
$vi = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);

# Descifra los datos
$decryptedData = mdecrypt_generic($td, $encryptedData);

# Termina el manejador de descifrado y cierra el modulo
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

# Muestra el descifrado
echo “Descifrado:\n{$decryptedData}\n\n”;
?>

Aquí se ha utilizado una clave de longitud fija de 32 caracteres, pero hay muchas más variantes y posibilidades. Desde utilizar una longitud aleatoria hasta tener 2 claves y un sin fin de opciones más. Podemos complicarlo lo que queramos, contra más complicado más difícil será reventarlo (aunque todavía no se conoce el método).

Ale!!

Sonycrow Código, Ejemplo, Php

Sumar tiempo (en horas) con PHP

Viernes, 21 de Diciembre de 2007

He tenido que crear un par de funciones para poder hacer sumas de horas con PHP. Por ejemplo, tenemos 2 horas: 1:20 y 2:10. En total suman 3:30 horas pero cuando tenemos un mogollon de horas, hacer una suma se nos hace un tanto complicado.

Bueno, si alguien las necesita aquí están:

function timeToMinutes($time)
{
$horaSplit = explode(“:”, $time);
if( count($horaSplit) < 3 ) {
$horaSplit[2] = 0;
}

# Pasamos los elementos a segundos
$horaSplit[0] = $horaSplit[0] * 60 * 60;
$horaSplit[1] = $horaSplit[1] * 60;

return (($horaSplit[0] + $horaSplit[1] + $horaSplit[2]) / 60);
}

function minutesToHours($mins)
{
$hours = floor($mins / 60);
$minutes = $mins – ($hours * 60);

if (!$minutes) {
$minutes = “00″;
}
else if ($minutes <= 9) {
$minutes = “0″ . $minutes;
}

return (“{$hours}:{$minutes}”);
}

Y para ejecutarlo, sería:

$minutos = timeToMinutes(“1:20″);
$minutos += timeToMinutes(“3:10″);
$minutos += timeToMinutes(“0:30″);
$totalEnHoras = minutesToHours($minutos);

Ale, espero que os sirva de algo :)

Sonycrow Código, Php, Programación, Scripts