[Résolu][Writer] Comment calculer le md5

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
webber
Membre hOOnoraire
Membre hOOnoraire
Messages : 145
Inscription : 18 juin 2011 18:48

[Résolu][Writer] Comment calculer le md5

Message par webber »

Bonjour,

Existe-t-il une fonction en programmation Ooo Basic pour calculer le md5 d'une chaine.
Par exemple :

Code : Tout sélectionner

Dim chaine As String, code_md5 As String
chaine = "mon code txt";
code_md5 = md5( chaine )
Merci
Dernière modification par webber le 23 juil. 2011 12:39, modifié 1 fois.
Apache OpenOffice OpenOffice.org 4.1.8 et LibreOffice 7.0.3.1 x64 (expérimentale)/6.4.7.2 (stable)
Windows 10, Debian et Mac OS X.
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Writer] Comment calculer le md5

Message par Churay »

Bonjour,

A ma connaissance : non

Mais voici le pseudo code à implémenter en Basic :

Code : Tout sélectionner

//Note: Toutes les variables sont sur 32 bits

//Définir r comme suit : 
var entier[64] r, k
r[ 0..15] := {7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22}
r[16..31] := {5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20}
r[32..47] := {4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23}
r[48..63] := {6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21}

//MD5 utilise des sinus d'entiers pour ses constantes:
pour i de 0 à 63 faire
    k[i] := floor(abs(sin(i + 1)) × 2^32)
fin pour

//Préparation des variables:
var entier h0 := 0x67452301
var entier h1 := 0xEFCDAB89
var entier h2 := 0x98BADCFE
var entier h3 := 0x10325476

//Préparation du message (padding) :
ajouter "1" bit au message
ajouter "0" bits jusqu'à ce que la taille du message en bits soit égale à 448 (mod 512)
ajouter la taille du message codée en 64-bit little-endian au message

//Découpage en blocs de 512 bits:
pour chaque bloc de 512 bits du message
    subdiviser en 16 mots de 32 bits en little-endian w[i], 0 = i = 15

    //initialiser les valeurs de hachage:
    var entier a := h0
    var entier b := h1
    var entier c := h2
    var entier d := h3

    //pour principal:
    pour i de 0 à 63 faire
        si 0 = i = 15 alors
            f := (b et c) ou ((non b) et d)
            g := i
        sinon si 16 = i = 31 alors
                  f := (d et b) ou ((non d) et c)
                  g := (5×i + 1) mod 16
              sinon si 32 = i = 47 alors
                        f := b xor c xor d
                        g := (3×i + 5) mod 16
                    sinon si 48 = i = 63 alors
                              f := c xor (b ou (non d))
                              g := (7×i) mod 16
                          fin si
                    fin si
              fin si
        fin si

        var entier temp := d
        d := c
        c := b
        b := ((a + f + k[i] + w[g]) leftrotate r[i]) + b
        a := temp
    fin pour

    //ajouter le résultat au bloc précédent:
    h0 := h0 + a
    h1 := h1 + b 
    h2 := h2 + c
    h3 := h3 + d
fin pour

var entier empreinte := h0 concaténer h1 concaténer h2 concaténer h3 //(en little-endian)
L'aspect le plus pénible est la gestion des entiers sur 32 bits puisque le Type Long ne les gère que sur 30 et en signé. La taille du message est même à coder en 64 bits...
Dernière modification par Churay le 22 juil. 2011 10:37, modifié 1 fois.
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
webber
Membre hOOnoraire
Membre hOOnoraire
Messages : 145
Inscription : 18 juin 2011 18:48

Re: [Writer] Comment calculer le md5

Message par webber »

Merci Churay,

Mais pour le moment, je ne me sens pas capable d’implémenter le code malgré l'algorithme que tu viens de me fournir.
Apache OpenOffice OpenOffice.org 4.1.8 et LibreOffice 7.0.3.1 x64 (expérimentale)/6.4.7.2 (stable)
Windows 10, Debian et Mac OS X.
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Writer] Comment calculer le md5

Message par Churay »

J'y réfléchis (c'est pour cela que la réponse a été assez rapide :lol: ).

Cela dit, je crois que je vais renoncer à Basic (on va pas refaire une biblio BigNum qui sera tout sauf performante (rapide).

Un gros écueil : je n'ai pas encore tout pigé dans l'intégration de modules écrits dans un autre langage.

Je vais donc laisser à mes neurones le temps de se connecter...
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
webber
Membre hOOnoraire
Membre hOOnoraire
Messages : 145
Inscription : 18 juin 2011 18:48

Re: [Writer] Comment calculer le md5

Message par webber »

:super: J'attends donc que tes neurones permettent de nous fournir une fonction md5 :P .
Apache OpenOffice OpenOffice.org 4.1.8 et LibreOffice 7.0.3.1 x64 (expérimentale)/6.4.7.2 (stable)
Windows 10, Debian et Mac OS X.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26195
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Comment calculer le md5

Message par Dude »

Salut,

Pas la peine de redévelopper, il existe une extension pour le cryptage (MD2, MD5, SHA-1, SHA-256, SHA-384 ou SHA-512).
http://extensions.services.openoffice.o ... ptographic

8)
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Writer] Comment calculer le md5

Message par Churay »

Je disais, dans un autre sujet heureusement qu'on a de vrais des qui savent
Je maintiens

Merci Dude
 Ajout : et je l'ai eu... : le site des extensions fonctionne à nouveau (au moins pour moi ;) 
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
webber
Membre hOOnoraire
Membre hOOnoraire
Messages : 145
Inscription : 18 juin 2011 18:48

Re: [Writer] Comment calculer le md5

Message par webber »

:super:
Apache OpenOffice OpenOffice.org 4.1.8 et LibreOffice 7.0.3.1 x64 (expérimentale)/6.4.7.2 (stable)
Windows 10, Debian et Mac OS X.