Foros del Web » Programando para Internet » PHP »

cuales son los mejores formas de encrytar y descencryptar

Estas en el tema de cuales son los mejores formas de encrytar y descencryptar en el foro de PHP en Foros del Web. Cita: Iniciado por guardarmicorreo si nos ceñimos al titular del post, es cierto, las mejores formas de encriptar son aquellas que por ejemplo no tienen ...

  #31 (permalink)  
Antiguo 22/08/2013, 14:43
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por guardarmicorreo Ver Mensaje
si nos ceñimos al titular del post, es cierto, las mejores formas de encriptar son aquellas que por ejemplo no tienen una colisión de hash (md5 la tiene) o se adaptan mejor a las necesidades específicas para la finalidad con que se encripta.

por ejemplo antes que md5 (contiene colisión de hash y además hay una web que descifra md5...) es preferible sha1 para nombres de archivos alojados en carpeta. antes que cifrar con php archivos BLOB es mejor utilizar el cifrado de mysql.

pero el creador del post tiene como finalidad encriptar todo el código, eso es una mala idea. de ahí que el post derivara en esta conversación de seguridad.

admito errores, si me corrigen me harán un favor, gracias! :)
Yo he estado siguiendo el post y claro, el problema de el auto fue el creer que con encriptar y desencriptar el codigo es una buena medida de seguridad... pero como ya han dicho, cada vulnerabilidad que puede tener una pagina web se soluciona de distintas formas, y la de "ofuscar" el código no es tan recomendable, ya que puede no ataca en si las vulnerabilidades

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #32 (permalink)  
Antiguo 22/08/2013, 14:44
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por pateketrueke Ver Mensaje
Como notas:

1. MD5/SHA* no son mecanismos de codificación ni "encriptado", es un mecanismo de hashing
2. Base64 es una mecanismo de codificación, no hashing, ni "encriptado"
entonces primero se encripta y luego se aplica hash?
__________________
Ayúdame a hacerlo por mi mismo.
  #33 (permalink)  
Antiguo 22/08/2013, 14:49
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por guardarmicorreo Ver Mensaje
entonces primero se encripta y luego se aplica hash?
Para hacer que?

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #34 (permalink)  
Antiguo 22/08/2013, 14:51
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por jonni09lo Ver Mensaje
Para hacer que?

Saludos
por ejemplo un fichero .txt
__________________
Ayúdame a hacerlo por mi mismo.
  #35 (permalink)  
Antiguo 22/08/2013, 15:01
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Normalmente no se usan ambas técnicas para dar solución a un problema (hashing y codificación)...

La codificación se usa en casos donde necesitas recuperar el valor original, como en el caso de un fichero.txt, donde codificas el contenido y luego para recuperar el valor original lo decodificas.

El hashing es mas para generar contenido cifrado donde no recuperaras el valor original, si no con fines de comparación (como las contraseñas)

Desconozco si hay técnicas de hashing que permitan revertir el valor original ya que normalmente solo uso estas para sistemas de login o que tengan que ver con trabajar datos en una sola vía.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #36 (permalink)  
Antiguo 22/08/2013, 15:39
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: cuales son los mejores formas de encrytar y descencryptar

haciendo caso a la firma de pateketrueke.

según el modelo de almacenamiento encriptado de PHP dice que

Cita:
[...]SSL/SSH no proteje los datos persistentes almacenados en una base de datos. SSL es un protocolo para proteger los datos mientras viajan en el cable.
también que

Cita:
Una vez un atacante gana acceso directamente a su base de datos (sobre pasando el servidor web), los datos sencibles podrían ser divulgados o mal utilizados...
Encriptando los datos es una buena forma de mitigar esta amenaza, pero muy pocas bases de datos ofrecen este tipo de encripción de datos.

La forma más fácil para trabajar en este problema, es crear primero su propio paquete de encripción, y utilizarlo desde de sus scripts de PHP.

[...]tales como Mcrypt y Mhash.

El script encripta los datos antes de insertarlos dentro de la base de datos, y los desencripta cuando los devuelve. Vea las referencias para ejemplos adicionales de como funciona la encripción.

En caso de datos que deben estar ocultos, si no fuera necesario usar su representación real (es decir, que no se mostrarán), quizás convenga utilizar hashing. El ejemplo más típico de hashing es cuando se almacena el hash MD5 de una contraseña en una base de datos, en lugar de almacenar la contraseña en sí misma. Vea también las funciones crypt() y md5().
por lo tanto, si la base de datos no ofrece encriptación y no es necesario utilizar su representación (expresar el valor real al usuario) lo mejor es utilizar encriptación de PHP.

en caso de que no haya que utilizar representación de los datos entonces hay que utilizar hash, el cual se almancenará en la base de datos.

si un usuario quiere editar su contraseña entonces debe poner la actual, que se convertirá en hash y este se comparará con el hash almacenado y las nuevas contraseñas pasarán por el mismo proceso de hashing.

eso es lo que entiendo del manual.

¿me he equivocado en algo o se puede mejorar la información al respecto?

gracias
__________________
Ayúdame a hacerlo por mi mismo.
  #37 (permalink)  
Antiguo 22/08/2013, 16:36
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Como ya te he comentado, para las diferentes vulnerabilidades que pueda poseer una pagina web, existen diferentes soluciones.

Por ende lo primordial es saber cuales son esas vulnerabilidades, ya que el proceso de hashing de contraseñas es, por ejemplo, para evitar que se pueda obtener la contraseña real en caso de que puedan acceder a la base de datos.

Lo que hablas de SSL y SSH son protocolos de transferencias de datos, estos no afectan a los datos que están en una base de datos como bien dice el manual, pero si afecta a la manera como viaja la informacion a través de la red, así que son dos cosas distintas ya que están enfocados a dos problemas distintos (por ejemplo usar protocolo htpps evita el problema del ataque del hombre en el medio)

Así que en resumen, si quieres poner seguridad a tu web, primero debes saber que vulnerabilidades quieres evitar y actuar en consecuencia ya que incluso todas las vulnerabilidades existentes no siempre aplican para todas las paginas ni las afectan de la misma manera.

Si quieres tener una pequeña referencia revisa este post

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #38 (permalink)  
Antiguo 23/08/2013, 06:14
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por hhs Ver Mensaje
Te sugiero que leas sobre el tema para que sepas como prevenirlo: http://www.php.net/manual/es/securit...-injection.php
en la pagina que dices
http://www.php.net/manual/es/securit...-injection.php
menciona
<?php
$offset = $argv[0]; // Cuidado, no hay validación en la entrada de datos!
$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result = pg_query($conn, $query);
?>
entonces dice este manual
Los usuarios normales dan clic en los enlaces 'siguiente' o 'atras' donde $offset está codificado en la URL. El script espera que el $offset entrante sea un número décimal. Sin embargo, qué pasa si alguien intenta irrumpir añadiendo una función urlencode() al formulario de la siguiente URL

Si esto sucedió, entonces el script podría presentarle un acceso de super usuario al atacante. Nótese que 0; es para proveer un offset válido a la consulta original y para finalizarla.


realmente no entiendo de que te sirve esto urlencode(), que es lo que te esta diciendo el manual, cual es el peligro con eso


me podrias explicar
gracias
  #39 (permalink)  
Antiguo 23/08/2013, 09:15
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: cuales son los mejores formas de encrytar y descencryptar

La regla de oro de un programador es "Nunca confíes en el usuario" ¿Qué quiere decir esto? significa que toda variable que recibamos de un usuario, ya sea por método GET o POST (esto incluye $_FILES) debemos siempre validar de que sea un valor valido. Me explico:

En tu ejemplo anterior, $offset debe validarse como float y ver si realmente es un decimal o no de esta manera:

Código PHP:
Ver original
  1. $offset = $argv[0];
  2. if(is_float($offset)){ //si $offset es un decimal continuamos con la operacion
  3.     $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
  4.     $result = pg_query($conn, $query);
  5. }else{ //de lo contrario evitamos que se ejecute un codigo que no esta permitido
  6.     echo "Datos incorrectos";
  7. }

Claro este solo es un ejemplo, a parte de esto, se deberían usar sentencias preparadas para evitar otras maneras de mysql inyection, pero la idea es la misma, siempre verificar los datos y usar las herramientas adecuadas para solucionar el problema en cuestión.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #40 (permalink)  
Antiguo 23/08/2013, 10:02
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por guardarmicorreo Ver Mensaje
jor_02_03 tienes mucha confusión respecto a la seguridad de la web.

la seguridad de cualquier cosa se divide en niveles. y como curiosidad SQL injection no es lo único que debes prevenir.
para comprender mejor sobre seguridad sigue el patrón MVC.

en tu web puedes tener varios documentos en una carpeta pública, dichos documentos se dividen en tres tipos: modelo que es el código puramente php que se va a ejecutar en el servidor, controlador que es el código php que se va a ejecutar en el servidor regulando las actividades y vista que es el código que va a generar finalmente el HTML dinámico.

cuando insertas y envías información a través de un formulario esa información queda almacenada en variables. estas pueden ser de varios tipos (locales, globales y superglobales).

dicha información por ejemplo la utilizarás para consultar a la base de datos, antes de consultar a la base de datos debes escapar los caracteres.

eso es básicamente el SQL injection.

otro nivel de seguridad es el que hay en la carpeta pública a la que acceden los usuarios.

otro nivel es el de servidor, evitar que los usuarios entren al servidor por otras vías.

etc. etc. etc.

creo recordar que había un post dedicado a la seguridad iniciado por uno de los que considero de los grandes del FDW como es trybi.

leetelo, está muy interesante, evidentemente lo que no entiendas lo puedes complementar con otras búsquedas.

el caso es que has querido de muy mala manera solucionar la seguridad de tu web, porque aun encriptando el código solo podrías desencriptar el 99% ya que necesitarías aunque sea una línea para comenzar a desencriptar, la cual seguiría estando expuesta y además como te ha dicho pateketrueke ¿cómo lo ejecutarías una vez ya desencriptado?

espero que te sirva de ayuda y busca más información sobre seguridad, intentar innovar sin conocer los referentes es dar palos de ciego y es más que probable que sean en falso.

saludos
realmente que interesante lo que mencionaste
gracias por tu aporte
  #41 (permalink)  
Antiguo 23/08/2013, 10:04
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por hhs Ver Mensaje
Sin afán de molestar y solo por aclaración. El modelo MVC intenta separar el acoplamiento o dependencia entre el modelo y la vista usando el controlador como intermediario.
Este modelo no impone ni sugiere formas de asegurar tus aplicaciones, ni estructuras especificas en las que debe de estar organizado tu código.
una pregunta al manejar el MVC esto da seguridad a mi web si o no
o esto es un mito
  #42 (permalink)  
Antiguo 23/08/2013, 10:09
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por KATHYU Ver Mensaje
Meto mi cuchara: osea que es mejor usar base64 que md5 ?? digo porq si con md5 hay solo que copiar y poner en ggogle un traductos md5, con base64 no hay o que ??

Recuerden que que ponen cuales son las mejores formas de encriptar y desencriptar !!!
1-¿tu cual usas para encriptar y descencriptar y porque y cuando lo usas?


2-¿encriptar te da seguridad a ti ?
  #43 (permalink)  
Antiguo 23/08/2013, 10:13
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por guardarmicorreo Ver Mensaje
para nada me molesta.

le sugerí el mvc porque así puede comprender "el viaje de las variables a lo largo de la aplicación de forma genérica" ya que es el modelo más utilizado.

en otras palabras: así puede ver mejor dónde, cómo y por qué hay que aplicar por ejemplo un escape de caracteres.

pero es cierto que el mvc no implica o sugiere seguridad.


1-¿entonces por que el MVC para que se usa si no pretende seguridad?
  #44 (permalink)  
Antiguo 23/08/2013, 10:15
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Otra pregunta para todos hay otras formas de encriptar ya que muy pocos hablan de esto,
  #45 (permalink)  
Antiguo 23/08/2013, 12:06
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por jor_0203 Ver Mensaje
1-¿entonces por que el MVC para que se usa si no pretende seguridad?[/COLOR][/FONT]
MVC es para separar el back end (que sería el motor de la web) del front end (que sería la presentación del contenido generado por el back end) utilizando como intermediario el controlador (que regula los procesos).

en este sentido ¿se podría poner la vista en la carpeta pública y el modelo y controlador en una carpeta aparte con permisos de linux por ejemplo?
yo estoy aprendiendo y de momento no lo he podido probar, estoy en windows :)
__________________
Ayúdame a hacerlo por mi mismo.
  #46 (permalink)  
Antiguo 23/08/2013, 12:14
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por guardarmicorreo Ver Mensaje
MVC es para separar el back end (que sería el motor de la web) del front end (que sería la presentación del contenido generado por el back end) utilizando como intermediario el controlador (que regula los procesos).

en este sentido ¿se podría poner la vista en la carpeta pública y el modelo y controlador en una carpeta aparte con permisos de linux por ejemplo?
yo estoy aprendiendo y de momento no lo he podido probar, estoy en windows :)
pero tambien en lineal puedo separalo y llamarlo sin hacer un archivo de vista
otra de modelo y otra de controlador

con lineal lo puedo usar con un include y listo
no mezclo codigo
  #47 (permalink)  
Antiguo 23/08/2013, 12:26
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por jor_0203 Ver Mensaje
pero tambien en lineal puedo separalo y llamarlo sin hacer un archivo de vista
otra de modelo y otra de controlador

con lineal lo puedo usar con un include y listo
no mezclo codigo
si con lineal te refieres a meter el código en archivos .php indiscriminadamente, tienes razón, funcionará.

te invito a que hagas una web siguiendo esta pauta, a las pocas semanas prueba a incorporar un chat socket, un sistema de mail para promociones y recuperación de contraseña y un sistema de pago.

ahí verás que para mantener el código, para incorporarle nuevas funcionalidades y para comprender la distribución del portal te las vas a ver y desear si no has seguido un orden desde el principio.

ya solo por el echo de tener un documento con más de 5000 líneas de código y buscar en él algo que quieras cambiar me dice que lo mejor es tener patrones como mvc.
__________________
Ayúdame a hacerlo por mi mismo.
  #48 (permalink)  
Antiguo 23/08/2013, 17:03
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Hola amigo @jor_0203 , yo te recomiendo que uses http://es1.php.net/manual/es/functio...pt-encrypt.php ya que encripta datos y los desencripta con http://es1.php.net/manual/es/functio...pt-decrypt.php , saludos.

Última edición por webankenovi; 23/08/2013 a las 17:28
  #49 (permalink)  
Antiguo 28/08/2013, 06:25
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por webankenovi Ver Mensaje
Hola amigo @jor_0203 , yo te recomiendo que uses http://es1.php.net/manual/es/functio...pt-encrypt.php ya que encripta datos y los desencripta con http://es1.php.net/manual/es/functio...pt-decrypt.php , saludos.
la estoy tratando de hacer
me esta costando
es mas no me sale, pero con un poquito de paciencia
lo lograre
mil gracias
  #50 (permalink)  
Antiguo 28/08/2013, 06:26
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por jonni09lo Ver Mensaje
La regla de oro de un programador es "Nunca confíes en el usuario" ¿Qué quiere decir esto? significa que toda variable que recibamos de un usuario, ya sea por método GET o POST (esto incluye $_FILES) debemos siempre validar de que sea un valor valido. Me explico:

En tu ejemplo anterior, $offset debe validarse como float y ver si realmente es un decimal o no de esta manera:

Código PHP:
Ver original
  1. $offset = $argv[0];
  2. if(is_float($offset)){ //si $offset es un decimal continuamos con la operacion
  3.     $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
  4.     $result = pg_query($conn, $query);
  5. }else{ //de lo contrario evitamos que se ejecute un codigo que no esta permitido
  6.     echo "Datos incorrectos";
  7. }

Claro este solo es un ejemplo, a parte de esto, se deberían usar sentencias preparadas para evitar otras maneras de mysql inyection, pero la idea es la misma, siempre verificar los datos y usar las herramientas adecuadas para solucionar el problema en cuestión.

Saludos
pero entonces como debo pober esto
tu que me aconsejas
  #51 (permalink)  
Antiguo 28/08/2013, 09:35
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por jor_0203 Ver Mensaje
la estoy tratando de hacer
me esta costando
es mas no me sale, pero con un poquito de paciencia
lo lograre
mil gracias
Seguramente no te funcione debido a que si seguiste tal se explica en el manual el $iv_size , el $iv y la $key deben de ser exactamente el mismo para desencriptarlo , con el $iv debes de tener mucho cuidado ya que crea MCRYPT_RAND un numero aleatorio y este debe de ser el mismo para desencriptarlo , cuando hagas la encriptacion debes de guardar el valor de $iv en algun sitio y luego usarlo en la desencriptacion si no lo realizas asi y lo realizas creando un nuevo iv en la desencriptacion estos iv nunca seran igual y por lo cual nunca se podra desencriptar.

ejemplo


Código PHP:
Ver original
  1. <?php
  2.  
  3.     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  4.     $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  5.     $key = "Esta es una clave muy secreta";
  6.     $text = "Encuéntrame a las 11 en punto detrás del monumento.";
  7.     $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
  8.     $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$key,$crypttext ,MCRYPT_MODE_ECB,$iv);
  9.  
  10.     echo 'encriptado: '.$crypttext. '<br> desencriptado: '.$decrypttext ;
  11. ?>

Última edición por webankenovi; 28/08/2013 a las 10:01
  #52 (permalink)  
Antiguo 28/08/2013, 14:12
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por webankenovi Ver Mensaje
Seguramente no te funcione debido a que si seguiste tal se explica en el manual el $iv_size , el $iv y la $key deben de ser exactamente el mismo para desencriptarlo , con el $iv debes de tener mucho cuidado ya que crea MCRYPT_RAND un numero aleatorio y este debe de ser el mismo para desencriptarlo , cuando hagas la encriptacion debes de guardar el valor de $iv en algun sitio y luego usarlo en la desencriptacion si no lo realizas asi y lo realizas creando un nuevo iv en la desencriptacion estos iv nunca seran igual y por lo cual nunca se podra desencriptar.

ejemplo


Código PHP:
Ver original
  1. <?php
  2.  
  3.     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  4.     $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  5.     $key = "Esta es una clave muy secreta";
  6.     $text = "Encuéntrame a las 11 en punto detrás del monumento.";
  7.     $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
  8.     $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$key,$crypttext ,MCRYPT_MODE_ECB,$iv);
  9.  
  10.     echo 'encriptado: '.$crypttext. '<br> desencriptado: '.$decrypttext ;
  11. ?>
pero como le hago cuando tenga acentos que que veo que le cuesta trabajo
descencriptar con acentos

mil gracias
  #53 (permalink)  
Antiguo 13/09/2013, 12:17
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

una pregunta y cual es la mejor forma de encryptar para que este en la base de datos
  #54 (permalink)  
Antiguo 13/09/2013, 12:20
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cuales son los mejores formas de encrytar y descencryptar

para que tipo de dato, irreversible?
  #55 (permalink)  
Antiguo 13/09/2013, 12:24
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por webankenovi Ver Mensaje
para que tipo de dato, irreversible?
exacto
algunos me dijeron que no usara md5
y otros me dijeron que no usara tampoco sha1()
entonces cual uso que sea buena para encryptar contraseñas
  #56 (permalink)  
Antiguo 13/09/2013, 12:29
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Para ese caso debes de usar tecnicas de hashing
te dejo info que dependera de la version que uses

http://php.net/manual/es/faq.passwords.php

http://es1.php.net/manual/es/function.hash.php algoritmo whirlpool recomendado

http://es1.php.net/manual/es/function.crypt.php algoritmo blowfish recomendado

http://php.net/manual/es/function.password-hash.php algoritmo CRYPT_BLOWFISH
  #57 (permalink)  
Antiguo 13/09/2013, 12:33
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por webankenovi Ver Mensaje
Para ese caso debes de usar tecnicas de hashing
te dejo info que dependera de la version que uses

http://php.net/manual/es/faq.passwords.php

http://es1.php.net/manual/es/function.hash.php algoritmo whirlpool recomendado

http://es1.php.net/manual/es/function.crypt.php algoritmo blowfish recomendado

http://php.net/manual/es/function.password-hash.php algoritmo CRYPT_BLOWFISH
esta grueso esto
no sabia que esto existía
  #58 (permalink)  
Antiguo 13/09/2013, 12:47
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cuales son los mejores formas de encrytar y descencryptar

puedes hacer incluso combinaciones , password_hash solo esta disponible desde la version 5.5.0

un pequeño ejemplo

Código PHP:
Ver original
  1. $pass = 'haskhdiusayhd9';
  2.  
  3. echo $salt = hash('whirlpool',$pass,false);
  4.  
  5. echo '<br>'.$pass = hash('whirlpool',$pass.$salt,false);
  6.  
  7. echo '<br>'.$pass = hash('whirlpool',crypt($pass,'$2y$10$usesomesillystringforsalt$').$pass,false);
  #59 (permalink)  
Antiguo 13/09/2013, 12:49
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Cita:
Iniciado por webankenovi Ver Mensaje
puedes hacer incluso combinaciones , password_hash solo esta disponible desde la version 5.5.0

un pequeño ejemplo

Código PHP:
Ver original
  1. $pass = 'haskhdiusayhd9';
  2.  
  3. echo $salt = hash('whirlpool',$pass,false);
  4.  
  5. echo '<br>'.$pass = hash('whirlpool',$pass.$salt,false);
  6.  
  7. echo '<br>'.$pass = hash('whirlpool',crypt($pass,'$2a$10$usesomesillystringforsalt$').$pass,false);
increíble eres un genio guaaa
  #60 (permalink)  
Antiguo 13/09/2013, 12:54
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cuales son los mejores formas de encrytar y descencryptar

Mira una lista de funciones que usaban algunas webs y algunas las siguen usando para que te hagas una idea y se te abra la imaginacion

- md5(md5($pass)
- md5($pass.md5($pass))
- md5(md5($salt).md5($pass)
- md5($pass.$salt)
- md5($salt.md5($pass)
- md5($salt.$pass)
- phpass($pass)
- sha1($username,$pass)
- md5(md5($pass).$salt)

cada linea es de una web diferente no se van concatenando ojo.

pero ya sabes no uses md5 ni sha1

Etiquetas: cuales, formas, mejores, son
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:21.