para metodos encriptar encriptación encriptacion desencriptar contraseñas contraseña con cadena archivos php encryption

metodos - encriptar y desencriptar url php



Encriptar y descifrar cadena con clave PHP (4)

Esta pregunta ya tiene una respuesta aquí:

Estoy buscando algunas funciones para cifrar y descifrar cadenas en php usando una clave especificada.

¡Gracias!



Supongo que se refería al cifrado de clave simétrica. mcrypt admite varios algoritmos (como AES, Tripel DES). Sin embargo, hay una trampa, no es compatible con ningún algoritmo de relleno, por lo que no sería posible recuperar la longitud original. Tienes 2 opciones para evitar este problema,

  1. Agregue un campo de longitud en frente de su texto claro. Digamos usar los primeros 4 bytes como longitud.

  2. Haga PKCS # 5 rellenando usted mismo. Hay ejemplos de código en esta página: http://www.php.net/manual/en/function.mcrypt-encrypt.php


Una implementación básica de openssl que he usado antes:

class MyEncryption { public $pubkey = ''...public key here...''; public $privkey = ''...private key here...''; public function encrypt($data) { if (openssl_public_encrypt($data, $encrypted, $this->pubkey)) $data = base64_encode($encrypted); else throw new Exception(''Unable to encrypt data. Perhaps it is bigger than the key size?''); return $data; } public function decrypt($data) { if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey)) $data = $decrypted; else $data = ''''; return $data; } }

Debería generar el par de claves RSA. Consulte aquí para obtener información sobre cómo hacerlo. Almacenar la clave privada en el archivo en sí es una mala idea. Esto es solo un ejemplo. Idealmente, le gustaría que el usuario proporcione la clave privada en el momento de descifrado