Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: tecasoft en 17 Marzo 2013, 19:25 pm



Título: metodos de cifrados
Publicado por: tecasoft en 17 Marzo 2013, 19:25 pm
wenas gente del foro tengoi 2 preguntas y me gustaria haber quien me las sabe responder:

1º es un buen metodo cifrar la password con esto para siempre* y si esta bien escrito:

Código:
$cifrad=hash('sha512',sha1($pass));

2º necesito un metodo de cifrado para los demas datos de la base de datos como email,etc, me podeis poner algun ejemplo. Yo he encontrado esto es util utilizar este tipo de funciones AES_ENCRYPT  y AES_DECRYPT o como consumirian o es mejor hacerlo desde php para el rendimiento, es que quiero seguridad pero tambien rendimiento:

http://donnierock.wordpress.com/2012/09/10/encriptacion-aes-en-mysql-y-mariadb/
 (http://donnierock.wordpress.com/2012/09/10/encriptacion-aes-en-mysql-y-mariadb/)

Un saludo


Título: Re: metodos de cifrados
Publicado por: WHK en 18 Marzo 2013, 21:19 pm
De que sirve cifrar y descifrar los datos de la base de datos si de todas formas tienes que incluir la llave dentro del código? comprendo si la db estubiera en un host inseguro pero si es propio no veo la utilidad, alguien que hackee la pagina vera la llave y descifrará todo.

Yo utilizo RC4 para cifrar y descifrar con una llave privada.

Saludos.


Título: Re: metodos de cifrados
Publicado por: tecasoft en 18 Marzo 2013, 22:02 pm
me puedes explicar mejor lo de rc4, es que esto de la seguridad hay que pensarlo bien, ya lei la wiki de que es rc4 pero en practica como se aplica, etc,gracias


Título: Re: metodos de cifrados
Publicado por: WHK en 20 Marzo 2013, 13:21 pm
https://gist.github.com/farhadi/2185197/raw/87ef1a949ace9de73e55a7d09515088d2f7001b0/rc4.php

Código
  1. <?php
  2.  
  3. /*
  4.  * RC4 symmetric cipher encryption/decryption
  5.  *
  6.  * @license Public Domain
  7.  * @param string key - secret key for encryption/decryption
  8.  * @param string str - string to be encrypted/decrypted
  9.  * @return string
  10.  */
  11. function rc4($key, $str) {
  12. $s = array();
  13. for ($i = 0; $i < 256; $i++) {
  14. $s[$i] = $i;
  15. }
  16. $j = 0;
  17. for ($i = 0; $i < 256; $i++) {
  18. $j = ($j + $s[$i] + ord($key[$i % strlen($key)])) % 256;
  19. $x = $s[$i];
  20. $s[$i] = $s[$j];
  21. $s[$j] = $x;
  22. }
  23. $i = 0;
  24. $j = 0;
  25. $res = '';
  26. for ($y = 0; $y < strlen($str); $y++) {
  27. $i = ($i + 1) % 256;
  28. $j = ($j + $s[$i]) % 256;
  29. $x = $s[$i];
  30. $s[$i] = $s[$j];
  31. $s[$j] = $x;
  32. $res .= $str[$y] ^ chr($s[($s[$i] + $s[$j]) % 256]);
  33. }
  34. return $res;
  35. }
  36.  
  37. ?>

Se usa así:
Código
  1. <?php
  2. $cifrado = rc4('llave', 'contenido real');
  3. echo '<p>cifrado: '.htmlspecialchars($cifrado, ENT_QUOTES).'</p>';
  4. $descifrado = rc4('llave', $cifrado);
  5. echo '<p>descifrado: '.htmlspecialchars($descifrado, ENT_QUOTES).'</p>';
  6. ?>

La misma función se utiliza para cifrar y descifrar pasandole una llave que solo tu conozcas, de esta forma un string cifrado no podrá ser descifrado sin la llave.

Si vas a guardar esto en la base de datos debes hacerlo en modo binario porque no son caracteres ascii, o si no lo codificas en base64 o urlencode.

Saludos.


Título: Re: metodos de cifrados
Publicado por: tecasoft en 21 Marzo 2013, 00:07 am
no me funciona el script, que esta pasando?


Título: Re: metodos de cifrados
Publicado por: WHK en 21 Marzo 2013, 13:16 pm
A mi me funciona bien:
http://codepad.org/62cKXdkE

Recuerda que cuando estas desarrollando debes habilitar el reporte de errores de php desde el php.ini o directamente con error_reporting(E_ALL)


Título: Re: metodos de cifrados
Publicado por: tecasoft en 21 Marzo 2013, 20:33 pm
culpa mia escribi solo la parte de abajo del rc4 sin contar con lo demas, entonces ese metodo criptografico lo usas tu y es bastante seguro para romper y tal entonces?¿ digo x fuerza bruta, gracias


Título: Re: metodos de cifrados
Publicado por: WHK en 22 Marzo 2013, 13:43 pm
No existe ningún tipo de cifrado que no se pueda romper, mientra mas corta y fácil sea la clave de cifrado entonces mas facil será tratar de comprobar cual es la clave...

comienzas a probar con la clave a, aa, ab , abc, etc hasta dar con la clave y esto no tiene nada que ver con el tipo de cifrado.

Si le pones una clave que contenga letras mayusculas y minusculas, números y simbolos y que tenga mas de 12 carácteres entonces no debería haber problema con el cifrado.

Saludos.


Título: Re: metodos de cifrados(solucionado)
Publicado por: tecasoft en 24 Marzo 2013, 19:21 pm
ok gracias solucionado