Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

cryptage sha1

10 réponses
Avatar
Pascal Bourdais
Bonjour,

Je réécris en php un script d'ajout d'utilisteur dans une base LDAP
en vue de l'utilisation par samba (les smbtools ne suffisent pas pour
plein de raisons).

J'en suis aux algo de cryptage des différents mots de passe :
sambaLMPassword, sambaNTPassword, userPassword

Mon script existait en shell et, pour les mots de passe, j'utilisais du
perl (ntlmgen) pour samba, et slappasswd pour usrPassword.

Dans php, j'ai essayé la fonction sha1

php -r 'echo "{SHA}" . sha1("toto", FALSE) ."\n";'
{SHA}0b9c2625dc21ef05f6ad4ddf47c5f203837aa32c

slappasswd -h {SHA} -s toto
{SHA}C5wmJdwh7wX2rU3fR8XyA4N6oyw=

man slappasswd :
<...>
-h ...
{SHA} and {SSHA} use the SHA-1 algorithm (FIPS 160-1), the latter with a seed.
<...>

Là, je dubite, sha1 et sha1 sont différents ?

En passant, si quelqu'un sait faire ntlmgen en php ...

Pascal


--
La bonne santé n'est que la plus lente des façons de mourir. (Coluche)

10 réponses

Avatar
Nicolas Bouthors
Pascal Bourdais nous disait :
php -r 'echo "{SHA}" . sha1("toto", FALSE) ."n";'
{SHA}0b9c2625dc21ef05f6ad4ddf47c5f203837aa32c



^^
Représentation du nombre issu de SHA en HEXA

slappasswd -h {SHA} -s toto
{SHA}C5wmJdwh7wX2rU3fR8XyA4N6oyw


^^
Représentation du nombre issu de SHA en BASE64

--
Nicolas - 06 20 71 62 34 - http://nicolas.bouthors.org/album/
Avatar
Pascal Bourdais
Le 31 Aug 2008 17:59:31 GMT, Nicolas Bouthors a écrit:
Pascal Bourdais nous disait :
php -r 'echo "{SHA}" . sha1("toto", FALSE) ."n";'
{SHA}0b9c2625dc21ef05f6ad4ddf47c5f203837aa32c



^^
Représentation du nombre issu de SHA en HEXA

slappasswd -h {SHA} -s toto
{SHA}C5wmJdwh7wX2rU3fR8XyA4N6oyw >


^^
Représentation du nombre issu de SHA en BASE64




C'est bien ce que je pensais, je suis nul en crypto et codage.
merci

PB
Avatar
Matthieu Moy
Pascal Bourdais writes:

C'est bien ce que je pensais, je suis nul en crypto et codage.



Bah, pour coder un grand nombre, tu as plusieurs choix :

* Coder en binaire : séquence d'octets de 0 à 255.
Ça donne un truc compact mais illisible à l'écran.

* Coder en hexa : un octet représente un nombre de 0 à 15.
Il faut deux chiffres hexa pour coder un « octet ».

* Base64 : c'est un truc un peu intermédiaire, on utilise plus que
0-9a-f, mais on n'utilise quand même que des caractères imprimables.

--
Matthieu
Avatar
Thierry B\.
--{ Matthieu Moy a plopé ceci: }--

* Coder en hexa : un octet représente un nombre de 0 à 15.



REDO FROM START

--
« Et s'il refuse d'apprendre à pêcher et que les poissons que tu
lui proposes ne lui conviennent pas, attends que la faim le fasse
changer d'avis... »
--{ PG, dans fr.comp.text.tex }--
Avatar
Matthieu Moy
"Thierry B." writes:

--{ Matthieu Moy a plopé ceci: }--

* Coder en hexa : un octet représente un nombre de 0 à 15.



REDO FROM START



Tu peux développer ?

--
Matthieu
Avatar
Olivier Miakinen
Le 04/09/2008 00:02, Matthieu Moy a écrit :

* Coder en hexa : un octet représente un nombre de 0 à 15.



REDO FROM START



Tu peux développer ?



Je pense que Thierry n'a pas compris ce que tu voulais dire par « un
octet représente un nombre de 0 à 15 ». Note que la formulation n'est
pas à mon avis la plus heureuse, et que tu aurais pu écrire plutôt
« un octet représente un chiffre hexa, de '0' à '9' ou de 'A' à 'F' ».
Avatar
Thierry B\.
--{ Matthieu Moy a plopé ceci: }--

* Coder en hexa : un octet représente un nombre de 0 à 15.



REDO FROM START



Tu peux développer ?



Un octet représente un nombre entre 0 et 255.

--
Enhance your /karma/: use a _free_ operating system *NOW*
Avatar
Matthieu Moy
"Thierry B." writes:

--{ Matthieu Moy a plopé ceci: }--

* Coder en hexa : un octet représente un nombre de 0 à 15.



REDO FROM START



Tu peux développer ?



Un octet représente un nombre entre 0 et 255.



Il fallait lire la ligne en entier, elle commençait par « Coder en
Hexa ».

Un peu plus haut dans le thread, on lit :

| php -r 'echo "{SHA}" . sha1("toto", FALSE) ."n";'
| {SHA}0b9c2625dc21ef05f6ad4ddf47c5f203837aa32c
|
| slappasswd -h {SHA} -s toto
| {SHA}C5wmJdwh7wX2rU3fR8XyA4N6oyw
Et dans le codage sha1, si tu vois des octets qui représentent des
nombres de 0 à 255, je suis intéressé par ton explication.

--
Matthieu
Avatar
Sylvain SF
Matthieu Moy wrote on 04/09/2008 18:20:

Il fallait lire la ligne en entier, elle commençait par « Coder en
Hexa ».



lorsque l'on lit "en entier" on ne trouve que des approximations:

Coder en binaire : séquence d'octets de 0 à 255.





le binaire c'est 0 ou 1, donc on obtient une sequence de bits.

Ça donne un truc compact mais illisible à l'écran.





un "truc" c'est pas très précis ça, mais pour le coup c'est
le moins compact possible.

Coder en hexa : un octet représente un nombre de 0 à 15.





non, c'est un nibble qui code un nombre entre 0 et 15 (décimal).

Base64 : c'est un truc un peu intermédiaire





un "truc" comme l'autre "truc" ou un autre "truc" ?

on utilise plus que 0-9a-f, mais on n'utilise quand même que des
caractères imprimables.





là vous confondez répresentation (comme binaire, octal, décimal,
héxadécimal) et encodage (dont base64).
on utilise que des caractères imprimables, en effet, c'est même
fait pour.

Sylvain.
Avatar
noSpam
"Matthieu Moy" a écrit dans le message
de news:
"Thierry B." writes:

Il fallait lire la ligne en entier, elle commençait par « Coder en
Hexa ».



lorsque l'on lit "en entier" on ne trouve que des approximations:

Coder en binaire : séquence d'octets de 0 à 255.



le binaire c'est 0 ou 1, donc on obtient une sequence de bits.

Ça donne un truc compact mais illisible à l'écran.



un "truc" c'est pas très précis ça, mais pour le coup c'est
le moins compact possible.

Coder en hexa : un octet représente un nombre de 0 à 15.



non, c'est un nibble qui code un nombre entre 0 et 15 (décimal).

Base64 : c'est un truc un peu intermédiaire



un "truc" comme l'autre "truc" ou un autre "truc" ?

on utilise plus que 0-9a-f, mais on n'utilise quand même que des
caractères imprimables.



là vous confondez répresentation (comme binaire, octal, décimal,
héxadécimal) et encodage (dont base64).
on utilise que des caractères imprimables, en effet, c'est même
fait pour.