c# hash tags mp3 id3

c# - ¿Es posible el uso efectivo de valores hash de cambio de archivos de audio(mp3)?



tags id3 (3)

Contestando tus preguntas

  • La ruta del archivo no se debe usar cuando se compute hash. Ni nombre de archivo ni extensión.

  • El reajuste después de cada escritura de la etiqueta ID3 resolvería su problema siempre que ocurran todos los cambios en su aplicación

  • hash se puede usar de forma segura como clave para sus propósitos (ver a continuación)

  • probablemente sí, si te entiendo correctamente

Posibilidad de valor hash repetido

Dependiendo de la función de hash que elija, si busca, encontrará / generará otro archivo con el mismo hash en año, milenio, mil millones de años o no lo hará hasta el fin del mundo.

Es todo una cuestión de probabilidades . Compruebe los detalles de cada función de hash para saber qué tan baja es la probabilidad de encontrar otro archivo con el mismo hash.

Problema de etiquetas cambiadas en archivos mp3

Si bien esto puede ser un problema, lo que debe hacer es cortar solo la parte del archivo que no es la etiqueta ID3. Por lo general, se encuentran al final del archivo y toman un porcentaje muy pequeño del tamaño del archivo.

Lo que puede hacer es usar la función de hashing en la parte del archivo que no cambiará. Simplemente omita los últimos N bytes de un archivo al realizar hash .

Voy a crear un programa de biblioteca de música, fácil. Almacenar la información, fácil.

Anteriormente miré en otra biblioteca de música hecha en c #, el tipo afirmó que incluso si mueve el archivo, al redescubrirse sabrá toda la información sobre ese archivo recuperado de la base de datos (xml, sql).

Más información sobre redescubrimiento: cuando mueve archivos, tiene que obtener la biblioteca de música para redescubrir porque su información actual es incorrecta, como la ruta del archivo, al volver a descubrirla encontrará el archivo, lo revisará en la base de datos y actualizará cualquier información

Pensé que esto es imposible, hasta ahora. Si hash un archivo y usas ese hash como clave, puedes utilizarlo para verificar siempre el archivo y asegurarte de que sea el correcto.

Corrígeme si me equivoco y confirma que lo que digo es cierto (esa es la pregunta).

  • La ruta del archivo no se usa para mezclar el archivo. (No sé cómo hash)
  • Re hash después de escribir cada etiqueta ID3 (¿cambiar el archivo cambia el hash?)
  • Usar el Hash como clave / identificación significará que si el archivo se mueve, se puede seguir haciendo referencia a la información almacenada al respecto.
  • Una vez que se lee la información leída del archivo xml (si estamos utilizando xml como base de datos), almacenarlo en un diccionario es la manera más rápida y mejor de tener los contenidos en la memoria

Es una pregunta, necesita una respuesta, se trata de c #. Estoy usando c #, es por eso que es específico, estoy haciendo una investigación de antecedentes, solo quería una opinión experta sobre lo que dije


Hashing funcionará para ti. Básicamente, crea una suma de comprobación basada en todos los bytes del archivo. Usar un buen hash le dará una firma para cada archivo que es único (hay más posibilidades de ganar la lotería cinco veces seguidas que encontrar dos archivos que son diferentes con el mismo hash).

El problema es que necesita leer todo el archivo para calcular el hash. Esto podría perjudicar el rendimiento un poco.

Por lo tanto, en rediscorvery, es posible que desee comprobar primero si el tamaño del archivo es el mismo. Si no, no hay necesidad de leer el archivo completo y calcular el hash. Pero necesita almacenar el tamaño del archivo y el hash para eso.

Algo de información sobre hashing (usando el método MD5)

http://www.fastsum.com/support/md5-checksum-utility-faq/md5-hash.php


Sí, si hash el contenido del archivo , incluso si el archivo se mueve a otra parte, seguirá produciendo el mismo hash cuando lo hagas de nuevo. Así que sí, puedes identificar totalmente los archivos en función del valor hash de su contenido (esto es lo que hace Git, por ejemplo). En cuanto a crear un hash de un archivo, hay varias preguntas que le indicarán cómo hacerlo, por ejemplo, este .

Sin embargo, tenga en cuenta que debido a las etiquetas ID3 y esas cosas, sus archivos no son inmutables, por lo que el hashing en el contenido del archivo podría no ser la mejor idea. Si cambia las etiquetas de un archivo, su hash cambiará, lo que dará como resultado un nuevo archivo (al menos para su aplicación). Por supuesto, si cambia las etiquetas dentro de su aplicación, entonces puede hacer un seguimiento de esos cambios y actualizar el registro anterior para usar el nuevo hash. La misma idea podría aplicarse también para identificar el archivo basado en su ruta (si lo mueve dentro de su aplicación, también puede actualizar su ruta en la base de datos). Sin embargo, el problema es que es probable que ambas acciones ocurran fuera de tu aplicación.

Por lo tanto, ambos métodos de identificación (hash de contenido de archivos o ruta de archivo) son un poco defectuosos, pero no existe una alternativa real para identificar el archivo.