Archive for May, 2009

Python : cryptographic hashes, md5, sha … so pySummer is born !

Friday, May 15th, 2009

Tout transfert de données sur le Net nécessite de vérifier l’authenticité des fichiers qui transitent sur le réseau. Les sommes de contrôle, telles MD5 ou SHA viennent à la rescousse. Cependant, il est aussi fréquent d’appliquer ce genre de traitement à des arborescences complètes de fichiers, en prévision de leur copie sur un autre média (cd, dvd, disque, etc …).

Je n’avais jamais l’outil adéquat capable de générer et de vérifier tout type de somme de contrôle sous la main. Heureusement, Python propose depuis la version 2.5 la bibliothèque hashlib encapsulant les fonctions de la librairie openssl.

Sauf qu’écrire un script à chaque utilisation spécifique, même si celà ne prend que quelques minutes, c’est réinventer périodiquement la roue. J’ai donc décidé d’écrire un script pour combler cette lacune : ainsi est né pySummer. Ce code ressemble plus à un script qu’à un module, il est tout frais développé, donc largement améliorable … il a surtout le mérite d’exister et de rendre service !

L’idée est donc de proposer les algorithmes fournis par le module haslib de Python, non seulement sur de simples fichiers mais aussi de manière récursive sur une arborescence de répertoires. J’ai même essayé de proposer un moyen de deviner le type de somme de contrôle, lors de la  vérification des sommes.

En ligne de commande, celà donne :
Usage: pySummer.py [options] arg
Options:
-h, –help       show this help message and exit
-r               recursively calculate checksums
-c               check sums
–hash=HASHNAME  select hash algorithm

Soit pour une arborescence :
la création des sommes (SHA-1 par défaut) :
$ python pySummer.py -r my_topdir/ > file.sums
ou
$ python pySummer.py –hash sha224 -r my_topdir/ > file.sums

la vérification des sommes (avec détection automatique) :
$ python pySummer.py -c file.sums (évidemment, il faut être dans le “bon” répertoire, car les chemins stockés sont relatifs. Le comportement est identique à celui des outils classiques comme md5sum, sha1sum, etc …)

Pour les téléchargements, c’est par ici !

Commentaires, améliorations sont les bienvenues.

If The Lights Go Out …

Sunday, May 17th, 2009

Thanks Katie for this beautiful song !

Python xls2csv : mise à jour et version 0.2

Wednesday, May 27th, 2009

Une mise à jour du programme xls2csv.py :
-> amélioration du traitement des options en ligne de commande
-> nouvelles options : possibilité de supprimer des lignes et des colonnes durant le processus de conversion dans le document final
-> conversion par générateur python (yield)
-> passage de la licence LGPL v3 à simplified BSD

Téléchargement : xls2csv.py