Discussion:
cryptage sha1
(trop ancien pour répondre)
Pascal Bourdais
2008-08-31 17:28:19 UTC
Permalink
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)
Nicolas Bouthors
2008-08-31 17:59:31 UTC
Permalink
Post by Pascal Bourdais
php -r 'echo "{SHA}" . sha1("toto", FALSE) ."\n";'
{SHA}0b9c2625dc21ef05f6ad4ddf47c5f203837aa32c
^^
Représentation du nombre issu de SHA en HEXA
Post by Pascal Bourdais
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/
Pascal Bourdais
2008-09-01 13:21:37 UTC
Permalink
Post by Nicolas Bouthors
Post by Pascal Bourdais
php -r 'echo "{SHA}" . sha1("toto", FALSE) ."\n";'
{SHA}0b9c2625dc21ef05f6ad4ddf47c5f203837aa32c
^^
Représentation du nombre issu de SHA en HEXA
Post by Pascal Bourdais
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
Matthieu Moy
2008-09-01 15:59:26 UTC
Permalink
Post by Pascal Bourdais
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
Thierry B\.
2008-09-01 19:25:15 UTC
Permalink
--{ Matthieu Moy a plopé ceci: }--
Post by Matthieu Moy
* 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 }--
Matthieu Moy
2008-09-03 22:02:02 UTC
Permalink
Post by Thierry B\.
--{ Matthieu Moy a plopé ceci: }--
Post by Matthieu Moy
* Coder en hexa : un octet représente un nombre de 0 à 15.
REDO FROM START
Tu peux développer ?
--
Matthieu
Olivier Miakinen
2008-09-03 23:39:53 UTC
Permalink
Post by Matthieu Moy
Post by Thierry B\.
Post by Matthieu Moy
* 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' ».
Thierry B\.
2008-09-04 08:28:34 UTC
Permalink
--{ Matthieu Moy a plopé ceci: }--
Post by Matthieu Moy
Post by Thierry B\.
Post by Matthieu Moy
* 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*
Matthieu Moy
2008-09-04 16:20:18 UTC
Permalink
Post by Thierry B\.
--{ Matthieu Moy a plopé ceci: }--
Post by Matthieu Moy
Post by Thierry B\.
Post by Matthieu Moy
* 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
Sylvain SF
2008-09-05 09:39:08 UTC
Permalink
Il fallait lire la ligne en entier, elle commençait par « Coder en
Hexa ».
Post by Matthieu Moy
Coder en binaire : séquence d'octets de 0 à 255.
le binaire c'est 0 ou 1, donc on obtient une sequence de bits.
Post by Matthieu Moy
Ç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.
Post by Matthieu Moy
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).
Post by Matthieu Moy
Base64 : c'est un truc un peu intermédiaire
un "truc" comme l'autre "truc" ou un autre "truc" ?
Post by Matthieu Moy
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.
noSpam
2008-09-05 09:39:08 UTC
Permalink
Il fallait lire la ligne en entier, elle commençait par « Coder en
Hexa ».
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.

Continuer la lecture sur narkive:
Loading...