¿Cuál es un ejemplo de las mejores prácticas actuales de cifrado y descifrado básico en PHP?

1

Tengo un buen conocimiento práctico de las mejores prácticas de seguridad básicas (hash de contraseñas, prevención de inyección de sql, CSRF, etc.) pero no puedo encontrar una solución para el cifrado y descifrado de caso común en PHP.

Google es de poca ayuda, ya que la mayoría de los resultados son muy criticados por ser inseguros por su diseño o simplemente desactualizados (por ejemplo, EBC) y para agregar a la confusión, la gran cantidad de bibliotecas parece ofrecer poca confianza entre sí.

Diga que tengo una cadena de texto sin formato y una clave que no cambiará y quiero poder cifrar y descifrar esa cadena a voluntad usando esa clave con el menor código posible (idealmente de una sola línea) y mientras me adhiero a la mejor práctica actual. ¿Podría alguien proporcionar un ejemplo de esto en PHP?

Un gran ejemplo de dónde sería útil esto es cuando se almacenan datos confidenciales en WordPress. La API de Opciones hace que el almacenamiento y la recuperación básicos sean realmente fáciles, pero a menudo es necesario almacenar los detalles de la tarjeta de crédito, las claves de API, etc. realmente simple de una sola línea mejoraría enormemente la situación.

Además, si pregunto en el lugar equivocado y ya existe una fuente siempre actualizada para este problema exacto, no dude en dirigirme allí.

EDITAR: la clave debe admitir una cadena arbitraria, por lo que podría usar AUTH_KEY de WordPress si lo desea y para hacerlo simple.

    
pregunta Rich Jenks 10.03.2015 - 12:32
fuente

2 respuestas

0

Parece que lo que estoy esperando no existe. Me encantaría ver algo así en el núcleo de PHP porque la mayoría de las personas simplemente no tienen el tiempo, el interés o la inclinación para aprender cosas como esta, pero inevitablemente lo necesitarán.

Terminé usando una biblioteca. enlace se veía muy bien, pero no estaba disponible en Packagist, así que fui con enlace

    
respondido por el Rich Jenks 13.03.2015 - 09:46
fuente
0

No creo que exista una función o método de una sola línea para el cifrado y descifrado. Puedes probar esto, es bastante fácil

enlace

Muestra:

<?php

require 'vendor/autoload.php';

use Coreproc\CryptoGuard\CryptoGuard;

// This passphrase should be consistent and will be used as your key to encrypt/decrypt
// your string

$passphrase = 'whatever-you-want';

// Instantiate the CryptoGuard class

$cryptoGuard = new CryptoGuard($passphrase);

$stringToEncrypt = 'test';

// This will spit out the encrypted text

$encryptedText = $cryptoGuard->encrypt($stringToEncrypt);

// This should give you back the string you encrypted

echo $cryptoGuard->decrypt($encryptedText);
    
respondido por el GouravR 10.03.2015 - 13:23
fuente

Lea otras preguntas en las etiquetas