elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad
| | |-+  Criptografía (Moderador: kub0x)
| | | |-+  calculo de sha1 de la suma de dos archivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: calculo de sha1 de la suma de dos archivos  (Leído 1,294 veces)
W0lFy


Desconectado Desconectado

Mensajes: 545



Ver Perfil WWW
calculo de sha1 de la suma de dos archivos
« en: 27 Enero 2017, 17:26 »

Buenas...
Me he topado con una pequeña duda....
como se podria generar un solo sha1 a partir del sha1 de dos archivos?
Existe un programa de firmas... doonde  saca el sha1 y vaarios tipoa de  checksum.... se llama verify+ by kobetron ..... me gustaria sabber que allgoritmo utiliza para sumar ell sha1 de dos archivos y poner un sha1 resultante.... he probado con un xor de los sha1 delos archivos y el sha1 del array de  bytes resultante de concatennar un archivo con otro....Es una duda conceptual... no se como sumar shha1...Gracias coomunidad


En línea

K@NuT0
Red Mx
Rojito
Colaborador
***
Desconectado Desconectado

Mensajes: 3.644


Viva México Cabrones...


Ver Perfil WWW
Re: calculo de sha1 de la suma de dos archivos
« Respuesta #1 en: 27 Enero 2017, 19:59 »

El hash es una firma es el resultado de la digestion de bites de informacion y se supone que es único e inigualable.

Si tienes 2 hash no se pueden sumar por que ya son el resultado de informacion que no podrias sumar.

Entonces si quieres sumar 2 archivos binariamente el hash debe procesar ambos archivos como por ejemplo un archivo ZIP/RAR de ambos y entonces te da un hash unico de la suma de ambos, en su defecto si quieres unir 2 hash te dara como resultado el hash de 2 hash mas no de los 2 archivos. te dejo un ejemplo en php
Código:
<?php
$archivo1='Hola mundo 1';
$archivo2='Hola mundo 2';


$hash1=sha1($archivo1);

$hash2=sha1($archivo2);

echo $hash1.'
'.$hash2.'
';

$hashmaster=sha1($hash1.$hash2); // suma de 2 hash
 
echo $hashmaster.'
 ';

$hashmaster2=sha1($archivo1.$archivo2);//hash de los 2 trozos de informacion o 2 archivos juntos

echo $hashmaster2;


Resultado

Código:
f93cda73ca7f272d28334f8f552c546f348d77ae //sha1 archivo1
74cabac0e6a0f7c538b87646652128ab5fb70d16 //sha1 archivo2
819b7a518d9e93283321a4f8321457364b7d253f //sha1 suma de los hash anteriores
9a6266a04b799f16c7563d7add498b5794deae4a//sha1 archivo1 y  archivo2 juntos


En línea

Desarrollar Malware Es Causa De Cancer...
W0lFy


Desconectado Desconectado

Mensajes: 545



Ver Perfil WWW
Re: calculo de sha1 de la suma de dos archivos
« Respuesta #2 en: 27 Enero 2017, 22:21 »

El hash es una firma es el resultado de la digestion de bites de informacion y se supone que es único e inigualable.

Si tienes 2 hash no se pueden sumar por que ya son el resultado de informacion que no podrias sumar.

Entonces si quieres sumar 2 archivos binariamente el hash debe procesar ambos archivos como por ejemplo un archivo ZIP/RAR de ambos y entonces te da un hash unico de la suma de ambos, en su defecto si quieres unir 2 hash te dara como resultado el hash de 2 hash mas no de los 2 archivos. te dejo un ejemplo en php
Código:
<?php
$archivo1='Hola mundo 1';
$archivo2='Hola mundo 2';


$hash1=sha1($archivo1);

$hash2=sha1($archivo2);

echo $hash1.'
'.$hash2.'
';

$hashmaster=sha1($hash1.$hash2); // suma de 2 hash
 
echo $hashmaster.'
 ';

$hashmaster2=sha1($archivo1.$archivo2);//hash de los 2 trozos de informacion o 2 archivos juntos

echo $hashmaster2;


Resultado

Código:
f93cda73ca7f272d28334f8f552c546f348d77ae //sha1 archivo1
74cabac0e6a0f7c538b87646652128ab5fb70d16 //sha1 archivo2
819b7a518d9e93283321a4f8321457364b7d253f //sha1 suma de los hash anteriores
9a6266a04b799f16c7563d7add498b5794deae4a//sha1 archivo1 y  archivo2 juntos

Entiendo todo lo que dices.... si descargas la version trial del programa que digo alomejor puedes ver lo que quiero decir.... el programa(verify+ by kobetron) ,tiene una funcion es seleccionar una carpeta de windows y te realiza el sha1 recursivo de todos los archivos, despues saca un sha1 ( no se  que operaciones hace para saccarlo) que entiendo que pretende ser una suma de los sha1 de todos los archivos....
ejemplo.

folder . sha1 EDF8374... <-  Este es el sha que quiero saber calcular
file1.   sha1 E538A.....
file2. sha1 A397F....

estos sha me los he inventado... si hace falta pongo los reales sha1 y me ayudais a sacar el sha1 que relacionaa todos los archivos... me explicoo un poco maal la verdad espero que mee entendais...
En línea

K@NuT0
NEBIRE


Desconectado Desconectado

Mensajes: 715


Ver Perfil
Re: calculo de sha1 de la suma de dos archivos
« Respuesta #3 en: 28 Enero 2017, 16:34 »

Hay dos formas de hacer lo que señalas...
A - Si la función de la librería que utilices admite que le vayas pasando un array de bytes para calcular el hash, entonces al terminar con un fichero, podrías ir enviando los datos del segundo fichero.
Es decir es como si 2 o más ficheros fueran uno solo. Si la librería solo tiene funciones donde se reciba la ruta de un fichero, este caso no podría hacerse (salvo que implemente uno mismo el algoritmo con esa funcionalidad).

B - Se trata de procesar cada fichero en un orden específico y tras obtener el  hash de cada uno, ir volcándolos en un fichero (un txt, por ejemplo). El hash de la carpeta, por tanto sería calcular al final el hash de este fichero que guarda el hash de todos los demás.

Este método, es más práctico que el previo. Para que sea más útil, además del hash, sería conveniente guardar también el tamaño en bytes de cada fichero.
Un posterior cálculo de los ficheros en esa carpeta (lista), arrojaría un hash diferente si algunos de los ficheros cambió, por tanto el hash final ('suma' que tu señalas), también cambia...

En ambos casos se exige de modo imperativo, que el orden en que se generan los hashes individuales de los ficheros, sea el mismo, de otro modo, arrojaría un resultado diferente. Para entenderlo un ejemplo:
Sean dos ficheros dado el supuesto que los contenidos respectivos fueran:
----> Lunes + Martes
Daría un hash distinto si estuvieren en el orden:
----> Martes + Lunes
Entonces como consejo, es que ese orden en que sean calculados sea por un factor que no cambie (si dicho cambio no altera el hash), por ejemplo el tamaño del fichero... si usas los nombres (lista alfabética), si luego se cambia el nombre de alguno, su hash seguiría siendo el mismo, pero podría ocupar entonces otro posición en el orden en que se calcule. Pasa lo mismo con la fecha... en cambio con el tamaño del fichero, si éste cambia, cambirá el hash también, pero en este caso el fichero ha sido modificado, luego es en este caso que queremos que arroje un hash 'final' distinto...
Si más de un fichero tiene el mismo tamaño, entonces ordena estos según los bytes que aparezcan al inicio en el fichero (es más costoso, ya que te obliga a abrir y leer de ellos hasta que quede determinado el orden entre ellos).

Ahora bien, es más provechoso, mantener una lista de los hahses individuales de cada fichero, ya que con ello, sabes no sólo si ha cambiado 'algún fichero', si no, cuál de ellos es el que ha cambiado. Es más si se hace tal como te decía antes, y se guarda también el tamaño de cada fichero, antes de calcular su hash, bastaría verificar su tamaño si es distinto, ya sabemos que ha cambiado sin necesidad de perder tiempo en calcular el hahs y calcularlo solo si el tamaño coincide....
Por otro lado, si el número de ficheros es relativamente pqueño y la suma del tamaño de todos ellos es también pequeño, no supondría ninguna molestia calcular la 'suma de las sumas', tal como pretendes... siempre y cuando, te sea suficiente sabes que 'alguno cambió' y no se requiera saber cual de ellos cambió.

-----
p.d.: La opción que te señala el compañero más arriba (comprimirlos en Rar, Zip, o empaquetarlos en TAR y luego generar el hash de ese archivo), aunque es totalmente válida, no es rentable en tiempo, ya que estás haciendo una operación costosa que es prescindible ... además exige hacer llamadas a librerías adicionales y para colmo ocupa un espacio extra en el disco. Todavía si la presencia de este archivo, implica que puedan ser eliminados los ficheros sueltos, incluso este método sería preferible a los antedichos, si el objetivo es tenerlos almacenados a largo plazo. NO, si son de uso contínuo... ya que entonces exigiria estar extreyendo contínuamente...
« Última modificación: 28 Enero 2017, 16:51 por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Caracteristicas de sha1?
Criptografía
s E t H 3 5,741 Último mensaje 30 Noviembre 2008, 12:47
por b3ck
cifrado rsa-sha1
Criptografía
risket 2 7,826 Último mensaje 5 Diciembre 2008, 12:06
por risket
¿Sha1 seguro?
Criptografía
nevachana 1 1,005 Último mensaje 31 Marzo 2015, 13:52
por engel lex
Hashes MD5 y SHA1
Seguridad
gregory90 4 532 Último mensaje 2 Noviembre 2015, 20:51
por gregory90
[ayuda]si la suma de fila es igual a la suma de columna imprima es simetrica
Programación C/C++
l.calderon609 2 485 Último mensaje 14 Noviembre 2016, 20:47
por l.calderon609
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines