¿Al marcar un archivo como de solo lectura, se evita que un hash cambie?

0

Hace algún tiempo desarrollé un script simple para detectar archivos duplicados. Funciona de la siguiente manera:

  • Localiza los archivos de Excel en una carpeta.
  • Obtiene SHA-256 del archivo.
  • Almacena una asignación entre el nombre de archivo: SHA256.
  • Marca el archivo como de solo lectura.

Ahora, soy consciente de que Excel almacena los metadatos en su propia estructura, por lo que abrir y guardar un archivo de Excel, incluso si no se ha realizado ninguna modificación, modificará el SHA-256 para este archivo.

Mi pregunta es: si marca el archivo como de solo lectura después de obtener su SHA-256, ¿es posible obtener un SHA-256 diferente mientras este indicador esté habilitado?

Me he dado cuenta de que obtengo diferentes hashes SHA-256 para los archivos marcados como de solo lectura, y me gustaría saber si esto es posible.

    
pregunta Jausk 01.03.2017 - 15:59
fuente

2 respuestas

2

Hay dos escenarios que explican por qué aún se puede cambiar su archivo, a pesar de estar protegido contra escritura:

  1. Si inicia su programa (Excel) como un usuario al que se le permite cambiar los permisos, especialmente los permisos de escritura, del archivo, entonces el programa (Excel) simplemente podría volver a habilitar el permiso de escritura sin avisarle. . En general, es una mala idea, pero quizás Excel sea tonto. Libreoffice Calc le pregunta si desea modificar la marca de permiso de escritura. Asumiría que Excel también lo haría.

  2. Si su programa ELIMINA el archivo y vuelve a crear un archivo con el mismo nombre, parecerá que el archivo cambió, aunque en realidad se eliminó por completo y se reemplazó por un archivo diferente que parece ser casi idéntico . Esto es posible porque no se evita la eliminación de un archivo negando el permiso de escritura al archivo.

respondido por el Pascal 01.03.2017 - 16:21
fuente
0

Cuando dices "marcar el archivo como de solo lectura", ¿te refieres a cambiar los atributos / permisos del archivo? Si es así, me ocuparé de eso.

Los atributos

(Windows) / Permissions (* nix) son información "meta" en el sistema de archivos. En NTFS, estos datos se almacenan en la Tabla maestra de archivos (MFT) . En ext3, estos datos se almacenarán en el inodo . Esto significa que cambiar el nombre del archivo, mover el archivo o cambiar los permisos del archivo no debe cambiar el contenido del archivo, que es lo que se oculta.

Siempre puedes ejecutar una prueba rápida para confirmar:

>rem Sum the file first.
>sha256sum ExcelFile.xlsx
4bb7303b56a728665f639c36ffdc6169ac4debd774a0e9bedd27ca15b451c8ad *ExcelFile.xlsx

>rem Check the attributes of the file.
>attrib ExcelFile.xlsx
A            C:\Users\User\Documents\ExcelFile.xlsx

>rem Add the read-only attribute.
>attrib +r ExcelFile.xlsx

>rem Sum the file again.
>sha256sum ExcelFile.xlsx
4bb7303b56a728665f639c36ffdc6169ac4debd774a0e9bedd27ca15b451c8ad *ExcelFile.xlsx

>rem Rename the file.
>ren ExcelFile.xlsx ExcelFile.xlsx2

>rem Sum the file again.
>sha256sum ExcelFile.xlsx2
4bb7303b56a728665f639c36ffdc6169ac4debd774a0e9bedd27ca15b451c8ad *ExcelFile.xlsx2

>rem Check the attributes of the file again.
>attrib ExcelFile.xlsx2
A    R       C:\Users\User\Documents\ExcelFile.xlsx2

>rem Remove the read-only attribute.
>attrib -r ExcelFile.xlsx2

>rem Rename the file again.
>ren ExcelFile.xlsx2 ExcelFile.xlsx

>rem Sum the file again.
>sha256sum ExcelFile.xlsx
4bb7303b56a728665f639c36ffdc6169ac4debd774a0e9bedd27ca15b451c8ad *ExcelFile.xlsx

>

También intenté abrir el archivo cuando estaba configurado como de solo lectura en Excel (también tenía [Read Only] en la barra de título). Mientras el archivo estaba abierto, volví a ejecutar sha256sum y el hash no había cambiado. Intenté guardar los cambios en el archivo y me pidió un nuevo nombre de archivo.

    
respondido por el Damian T. 03.03.2017 - 01:08
fuente

Lea otras preguntas en las etiquetas