encriptacion.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /*
  3. Sistema de Portales de Soler y Palau SA de CV
  4. (2015) Desarrollos y Servicios en Tecnología Inteligente S de RL de CV
  5. Versión 1.0
  6. Última Actualización: 29/06/2015
  7. Código del Módulo: SHA002
  8. */
  9. // Función de encriptación
  10. function encriptar($cadena, $clave = 'SPA861201DK4') {
  11. if(strlen($clave)>32) {
  12. $clave = substr($clave,0,32);
  13. }
  14. while(strlen($clave)<32) {
  15. $clave .= $_SESSION['diaAcceso1'];
  16. }
  17. $cifrado = MCRYPT_RIJNDAEL_256;
  18. $modo = MCRYPT_MODE_ECB;
  19. return rawurlencode(base64_encode(mcrypt_encrypt($cifrado, $clave, $cadena, $modo,mcrypt_create_iv(mcrypt_get_iv_size($cifrado, $modo), MCRYPT_RAND))));
  20. }
  21. // Función para desencriptación
  22. function desencriptar($cadena, $clave = 'SPA861201DK4') {
  23. if(strlen($clave)>32) {
  24. $clave = substr($clave,0,32);
  25. }
  26. $claveA = $clave;
  27. while(strlen($clave)<32) {
  28. $clave .= $_SESSION['diaAcceso1'];
  29. }
  30. // Esta sección administra los cambios en el carácter de relleno
  31. if($_SESSION['diaAcceso0']!=$_SESSION['diaAcceso1']) {
  32. while(strlen($claveA)<32) {
  33. $claveAnterior .= $_SESSION['diaAcceso0'];
  34. }
  35. $_SESSION['diaAcceso0'] = $_SESSION['diaAcceso1'];
  36. foreach($arrEncriptadas as $strEncriptada) {
  37. if(isset($_SESSION[$strEncriptada])) {
  38. $_SESSION[$strEncriptada] = encriptar(desencriptar($_SESSION[$strEncriptada],$claveAnterior),$clave);
  39. }
  40. }
  41. }
  42. $cifrado = MCRYPT_RIJNDAEL_256;
  43. $modo = MCRYPT_MODE_ECB;
  44. return str_replace(chr(0),'',mcrypt_decrypt($cifrado,$clave,base64_decode(rawurldecode($cadena)), $modo,mcrypt_create_iv(mcrypt_get_iv_size($cifrado, $modo), MCRYPT_RAND)));
  45. }
  46. ?>