Forum Programmation.autre Pour le passage sha vers base64 : un doute m'habite :)

Posté par  (site web personnel) .
Étiquettes : aucune
0
28
avr.
2005
Hello les gens,

depuis https://linuxfr.org/comments/523371.html#523371(...) l'idée a fait du chemin et j'ai même fait héberger le bébé sur gna! (encore merci à eux !) http://gna.org/projects/pyshapass/(...) mais il me reste un doute sur la validité de ce que j'emploie, c'est à dire

chaine vers sha1 vers base64 puis 8 premiers caractères = mot de passe

Quand on lance ce traitement une 50aine de fois avec une chaine de 20 caractères pris sur /dev/random, on aperçoit des "colonnes" de N,M,Z est ce normal ?

cedric@lef:~/tmp $ cat t.py
import sha
import base64
f = file('/dev/random','r')
for i in range(20):
print base64.encodestring(sha.new(f.read(20)).hexdigest())[:-1]
cedric@lef:~/tmp $ python t.py
ZWU5OTI5MmI3YWM5MGU5MTE1NjI5YTY5ODJlMTc2N2JhOWNlM2JmNQ==
ODIzNThiZDA1NWY3NzlhMTdmNjBiYTIxNmI1OTExMzQxODM0YzVhZA==
NTQ5ZDM5NjAzNGJiOGZhN2FmYTM4OGNlMmQxNWNjMTYxNWVjNmU3ZA==
OTE2ZWQ2ZGI3NWVkMmI5N2JlYWU3YTUxNTJhM2Q3MGVmZDZlYzZjMg==
M2Y1ODI2YTEyNjk5MDIzM2U5MzkwNzQwYWEyYjc4ZmExOTU0N2FjNw==
MDljZDIzMWMxZjQ5MDE3ZTZmYWRjMTEyYjBlNzU3YWZhNTgxNGVlYQ==
NTBhN2IyYzQ4MDJmNzA5OTYzZmRiOTJjZWE1YjA5YjcyYmViYWZhMA==
MTQxOGZlOTQ5Y2MyZmM1OTJlMDI4YTczZGRlMzg1ZDU5ZTc2ZDBkZg==
NmY1ZGI3ZjkzYjY2NTZlYzJjY2Q1ZjQ2MmNhYTI3MGY2NmIwNGVjNg==
MDZmMGE3ZTY1YmI0NDg3ODE0ZmJhMDNmYzg2YTFhMTBiYjY3YTNkNw==
Y2E0ZWIyNGQ5Mjc3Yzc0ZDMyOGYwODQwZjgyMzE5NGZkNzE4ZThmZg==
OTBlYmEwY2QzMDNjMzI5ZDFlMWZjODlmOWRlOTFiMmFjZmJkNjA5Zg==
OWQxYTU3ZDI4ODNlMDlkZGEzN2NkYTBlODBmZTdiZDY5ZWRkNDA1MQ==
MDYwOWIzYWRhZjU5M2E2YzhkZjUwMzA1YmQ0OGQ1ZmViNDEyZmVjYw==
NGM0YzlhMWQwYTJmOWIxNTkxZjdmOGIxNmIyODNkOWJjMTVmZmM4Yg==
ZDlmYzEzYjZlOTIxMjQ4MmI4ZjYxMDFlYzA0NzE0NTIxMjM1ZDk0Mg==
NjQxY2JiMGIxNzRkZmJkOTBkN2JmNGU4OGI4MTg5MGVlZmY0M2QyNg==
OGIxNzEyMjIwNGU1YzE5YWQ2ZDczNDEzMzJlMmUzN2EzMzI5ZjQ0ZA==
NDI4YjJkYzA4ZTBiMmVhZTU4YjBhZmQ3NWM2YTJjNDgxZmE4Njg2Nw==
NDQzODVjOTYyZmQwNGNjMzU1MWY4NjM3ODI2NzAzYjY2ZTc3ZGY0Zg==


Vous voyez le nombre de N et de M en première colonne par exemple ?
Je suppose que c'est du à base64 mais comment l'éviter car si je n'utilise pas base64 et que j'encode le sha1 en hex, les lettres ne seront choisis que dans [1-9a-f] ce qui réduit considérablement la "force" du mot de passe, 16^8 au lieu de 64^8.

Même dans les exemples de mon README, c'est bizarre : http://cvs.gna.org/viewcvs/pyshapass/pyshapass/README?rev=1.5&c(...)
Tous les exemples commencent par M ou N :-/

J'avais pensé à prendre des indices différents pour le mot de passe, au lieu de [0,1,2,3,4,5,6,7] prendre [1,2,3,5,6,7,9,10] mais ça sort quand même des mots de passe "louche".

Une idée ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.