Detectar extension de imagen con el metodo de los numeros magicos

¿Que son los numeros magicos y por que es tan importante saber de ellos? 🧙‍♂️

Los numeros magicos, en informatica, son los primeros bytes de los archivo y son usados para identificar su extension.

Usar los numeros magicos es mucho mas seguro que identificarlos por la "extension".

¿Como identificamos el tipo de imagen?

Python cuenta con un paquete llamado imghdr. No hace falta que lo instales puesto que es parte de Python.

Este script es un ejemplo (vas a tener que colocar un archivo llamado mygif.gif para que funcione):

import imghdr

extension = imghdr.what("./mygif.gif")
print(extension)

# Salida: gif

Pero para que no queden dudas, vamos a renombrar el archivo a "mygif.pdf"

Modificamos el script:

import imghdr

extension = imghdr.what("./mygif.pdf")
print(extension)

# Salida: gif

Como vemos, no esta validando por el nombre de la extension, si no que lo hace por el metodo de los numeros magicos!!

Esta paquete evalua solo imagenes, pero estoy seguro de que podes construir tu propio paquete para identificar cualquier cosa 😉

12