Foros del Web » Programando para Internet » PHP »

sha1_hex

Estas en el tema de sha1_hex en el foro de PHP en Foros del Web. hola chicos otra vez por aca disculpenme por molestar pero lo siguiente es para saber si esta funcion sha1_hex sirve para php porque la unica ...
  #1 (permalink)  
Antiguo 04/03/2010, 14:56
Avatar de towel  
Fecha de Ingreso: marzo-2009
Mensajes: 101
Antigüedad: 10 años, 11 meses
Puntos: 0
sha1_hex

hola chicos otra vez por aca disculpenme por molestar pero lo siguiente es para saber si esta funcion sha1_hex sirve para php porque la unica que veo es esta
sha1 y necesito utilizar esta patra encriptar y hacer una firma si alguien me puede ayudar se lo agradeceria...
  #2 (permalink)  
Antiguo 04/03/2010, 16:26
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 10 años, 3 meses
Puntos: 65
Respuesta: sha1_hex

Yo no creo que sea TAN dificil de resolver, a vos que te parece? Viste en el manual ese que esta en "php.net". Bueno, fijate que en la esquina superior derecha, tiene un buscador, copia y pega lo que queres buscar, despues hace click en "buscar" y si no te tira resultados, no existe esa funcion... No creo que sea tan complicado...
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 05/03/2010, 06:54
Avatar de towel  
Fecha de Ingreso: marzo-2009
Mensajes: 101
Antigüedad: 10 años, 11 meses
Puntos: 0
Lo ke pasa es que esa funcion en php.net ya lo havia revizado y no existe ahora bien me han comentado que hay una libreria que hace que esa funcion sirva para php si alguien sabe o me puyeda ayudar se le agradece....

bueno laempresa que me mando hacer eso me manda a buscar una funcion que en php no existe y pues de tantas prueba pues la que le seirve es la de sha1 solomanete asi funciona en php...

Última edición por GatorV; 05/03/2010 a las 13:19
  #4 (permalink)  
Antiguo 19/05/2010, 02:34
 
Fecha de Ingreso: septiembre-2003
Ubicación: London
Mensajes: 162
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: sha1_hex

Me parece que esa función se incluye en PHP a partir de la versión 4.3 de PHP, si usas una versión anterior tendrás que incluirle la librería para poder usarla.

Te paso la clase:
Código PHP:
<?php

/*
** Date modified: 1st October 2004 20:09 GMT
*
** PHP implementation of the Secure Hash Algorithm ( SHA-1 )
*
** This code is available under the GNU Lesser General Public License:
** [url]http://www.gnu.org/licenses/lgpl.txt[/url]
*
** Based on the PHP implementation by Marcus Campbell
** [url]http://www.tecknik.net/sha-1/[/url]
*
** This is a slightly modified version by me Jerome Clarke ( [email][email protected][/email] )
** because I feel more comfortable with this
*/

function sha1_str2blks_SHA1($str)
{
   
$strlen_str strlen($str);
   
   
$nblk = (($strlen_str 8) >> 6) + 1;
   
   for (
$i=0$i $nblk 16$i++) $blks[$i] = 0;
   
   for (
$i=0$i $strlen_str$i++)
   {
       
$blks[$i >> 2] |= ord(substr($str$i1)) << (24 - ($i 4) * 8);
   }
   
   
$blks[$i >> 2] |= 0x80 << (24 - ($i 4) * 8);
   
$blks[$nblk 16 1] = $strlen_str 8;
   
   return 
$blks;
}

function 
sha1_safe_add($x$y)
{
   
$lsw = ($x 0xFFFF) + ($y 0xFFFF);
   
$msw = ($x >> 16) + ($y >> 16) + ($lsw >> 16);
   
   return (
$msw << 16) | ($lsw 0xFFFF);
}

function 
sha1_rol($num$cnt)
{
   return (
$num << $cnt) | sha1_zeroFill($num32 $cnt);    
}

function 
sha1_zeroFill($a$b)
{
   
$bin decbin($a);
   
   
$strlen_bin strlen($bin);
   
   
$bin $strlen_bin $b substr($bin0$strlen_bin $b);
   
   for (
$i=0$i $b$i++) $bin '0'.$bin;
   
   return 
bindec($bin);
}

function 
sha1_ft($t$b$c$d)
{
   if (
$t 20) return ($b $c) | ((~$b) & $d);
   if (
$t 40) return $b $c $d;
   if (
$t 60) return ($b $c) | ($b $d) | ($c $d);
   
   return 
$b $c $d;
}

function 
sha1_kt($t)
{
   if (
$t 20) return 1518500249;
   if (
$t 40) return 1859775393;
   if (
$t 60) return -1894007588;
   
   return -
899497514;
}

function 
sha_1($str$raw_output=FALSE)
{
   if ( 
$raw_output === TRUE ) return pack('H*'sha_1($strFALSE));
   
   
$x sha1_str2blks_SHA1($str);
   
$a =  1732584193;
   
$b = -271733879;
   
$c = -1732584194;
   
$d =  271733878;
   
$e = -1009589776;
   
   
$x_count count($x);
   
   for (
$i 0$i $x_count$i += 16)
   {
       
$olda $a;
       
$oldb $b;
       
$oldc $c;
       
$oldd $d;
       
$olde $e;
       
       for (
$j 0$j 80$j++)
       {
           
$w[$j] = ($j 16) ? $x[$i $j] : sha1_rol($w[$j 3] ^ $w[$j 8] ^ $w[$j 14] ^ $w[$j 16], 1);
           
           
$t sha1_safe_add(sha1_safe_add(sha1_rol($a5), sha1_ft($j$b$c$d)), sha1_safe_add(sha1_safe_add($e$w[$j]), sha1_kt($j)));
           
$e $d;
           
$d $c;
           
$c sha1_rol($b30);
           
$b $a;
           
$a $t;
       }
       
       
$a sha1_safe_add($a$olda);
       
$b sha1_safe_add($b$oldb);
       
$c sha1_safe_add($c$oldc);
       
$d sha1_safe_add($d$oldd);
       
$e sha1_safe_add($e$olde);
   }
   
   return 
sprintf('%08x%08x%08x%08x%08x'$a$b$c$d$e);
}
?>
__________________
Mi Blog

Etiquetas: Ninguno
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 21:55.