Foro hardware en general, armado de pc gamers - servidores, guías, ayuda de reparación y más.

 
Avatar de Usuario
Nomak
Administrador del Sitio
Administrador del Sitio
Autor del post
Mensajes: 1344
Registrado: 31 Ene 2016, 19:13
Ubicación: Rosario
Contactar:

Simple PHP encrypt y decrypt (seguro)

28 Mar 2017, 14:26

Deben modificar "This is my secret key" y "This is my secret iv" para hacer mas complejo el encriptado

<?php
/**
 * simple method to encrypt or decrypt a plain text string
 * initialization vector(IV) has to be the same when encrypting and decrypting
 * PHP 5.4.9 ( check your PHP version for function definition changes )
 *
 * this is a beginners template for simple encryption decryption
 * before using this in production environments, please read about encryption
 * use at your own risk
 *
 * @param string $action: can be 'encrypt' or 'decrypt'
 * @param string $string: string to encrypt or decrypt
 *
 * @return string
 */
function encrypt_decrypt($action, $string) {
    $output = false;

    $encrypt_method = "AES-256-CBC";
    $secret_key = 'This is my secret key';
    $secret_iv = 'This is my secret iv';

    // hash
    $key = hash('sha256', $secret_key);
   
    // iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
    $iv = substr(hash('sha256', $secret_iv), 0, 16);

    if( $action == 'encrypt' ) {
        $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
        $output = base64_encode($output);
    }
    else if( $action == 'decrypt' ){
        $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
    }

    return $output;
}

$plain_txt = "This is my plain text";
echo "Plain Text = $plain_txt\n";

$encrypted_txt = encrypt_decrypt('encrypt', $plain_txt);
echo "Encrypted Text = $encrypted_txt\n";

$decrypted_txt = encrypt_decrypt('decrypt', $encrypted_txt);
echo "Decrypted Text = $decrypted_txt\n";

if( $plain_txt === $decrypted_txt ) echo "SUCCESS";
else echo "FAILED";

echo "\n";
?>


CPU: i7 6700K
Mobo: MSI z170a Gaming Pro
GPU: Asus Strix 980ti OC
RAM: DDR4 Gskill 2x8gb (16gb) Kit 3000mhz
Rigido: SSD Samsung 850 EVO 250GB / Wester Digital 2TB WD2003FZX (Black)
Refrigeración: Corsair Hydro Series™ H100i Extreme Performance
Fuente: EVGA SuperNOVA 850 G2
Gabinete: NZXT H440 Black Red
Monitor: 23" LG 23MP55HQ-P
Mouse: Razer Deathadder Chroma RGB
PAD: Corsair MM300 Medium 360 X 300
Auricular: Logitech G633
Teclado: Logitech G710+
Joystick: Xbox One + Adaptador Wireless
Silla: Arozzi Milano Gaming

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado