IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Sha1 C++ XE5 [Débutant]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Sha1 C++ XE5
    Bonjour à tous,

    J'aimerais savoir si il existe une librairie, des fonctions pour crypter en sha1 sous XE5 ?
    Malgré mes recherches je n'ai rien trouvé de très concluant ...

    Cordialement,

    Remss

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut
    un petit Google me donne ceci Crypto++
    déjà essayé?
    un lien sur cette bibliothèque http://www.dreamincode.net/forums/to...-c-builder-xe/

    merci de ton feedback qui sera bien utile
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Salut, voici le code que j'utilise avec Crypto++.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        String __fastcall DigestSHA1(String AText)
        {
            SHA1 sha;
            System::Byte abDigest[SHA1::DIGESTSIZE];
            sha.CalculateDigest(abDigest, (System::Byte*)AText.c_str(), AText.Length() * AText.ElementSize());
     
            std::string sink;
            HexEncoder encoder(NULL, true, 2, "");
            encoder.Attach(new StringSink(sink));
            encoder.Put(abDigest, sha.DigestSize());
            encoder.MessageEnd();
     
            return String(sink.c_str());
        }
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Merci pour vos réponses !

    J'avais essayé d'utiliser ça au début : http://www.codeproject.com/Articles/...the-SHA-Hash-A

    Maintenant, je vais essayer ce que vous m'avez passé, en attendant je suis allé ici : http://www.cryptopp.com/

    Et apparemment crypto++ fonctionne que sous XE10 ...
    Platforms

    The current version of Crypto++ supports the following compilers:

    MSVC 6.0 - 2012
    GCC 3.3 - 4.7
    Clang 3.2
    Intel C++ Compiler 11 - 13
    Solaris Studio 12.3
    C++Builder 2010 (for version 5.6.1)

    Mais je vais voir ce que je peux faire, merci beaucoup de votre aide !

    Cordialement,

    Remss

  5. #5
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par remss02 Voir le message
    Et apparemment crypto++ fonctionne que sous XE10 ...
    Platforms

    The current version of Crypto++ supports the following compilers:

    MSVC 6.0 - 2012
    GCC 3.3 - 4.7
    Clang 3.2
    Intel C++ Compiler 11 - 13
    Solaris Studio 12.3
    C++Builder 2010 (for version 5.6.1)
    Il fonctionne aussi très bien avec XE2, XE5 et XE6 pour l'avoir essayer. J'ai peut-être dû changer le fichier de projet par-contre.
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Crayon Voir le message
    Il fonctionne aussi très bien avec XE2, XE5 et XE6 pour l'avoir essayer. J'ai peut-être dû changer le fichier de projet par-contre.
    Oui parce que la librairie n'est pas supportée, embarcadero m'insulte dès que je l'inclut

    J'ai réussi à bidouillé quelque chose pour utiliser les fonctions mais j'ai une erreur d'externe non résolu lors de l'appel d'une énumération ? sûrement un fichier qui manque ...

    Donc pour le moment je me retrouve coincé et contraint d'utiliser du ROT13 en attendant une solution juste pour dire que je ne laisse pas les mots de passes en clair.

    Un collègue utilise du sha1 pour son site, c'est tellement plus simple en php !

  7. #7
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Salut, voici comment faire à l'aide d'Indy (inclus dans RAD Studio).

    Il faut d'abord ajouté ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <IdHashSHA.hpp>
    #include <IdStrings.hpp>
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        String LHexStr;
        TIdHashSHA1* LSha1 = new TIdHashSHA1();
        Idglobal::TIdBytes LBytes = LSha1->HashString("Text", Idglobal::_di_IIdTextEncoding());
        for(int i = 0; i < LBytes.Length; ++i)
        {
            LHexStr += BinToHexStr(LBytes[i]);
        }
        delete LSha1;
    Dans LBytes tu as la valeur en binaire et LHexStr est une chaine de caractères en hexadécimal.

    À la place de Idglobal::_di_IIdTextEncoding() qui est la valeur par défaut, tu peux utiliser ceci:
    • IndyTextEncoding_Default();
    • IndyTextEncoding_OSDefault();
    • IndyTextEncoding_8Bit();
    • IndyTextEncoding_ASCII();
    • IndyTextEncoding_UTF16BE();
    • IndyTextEncoding_UTF16LE();
    • IndyTextEncoding_UTF7();
    • IndyTextEncoding_UTF8();
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoup ça fonctionne impeccable !

    Juste lors de la conversion, les lettres minuscules se transforment en majuscules, du coup j'ai fais un petit bout de code pour les remettre en minuscules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		   for(i=0; cPassWord[i] != '\0'; i++ )
    		   {
    			if (cPassWord[i] >= 'A' && cPassWord[i] <= 'M'){
    				cPassWord[i] += 32;
    			}
     
    			else if(cPassWord[i] > 'M' && cPassWord[i] <= 'Z'){
    			cPassWord[i] -= 32;
    			}
    			 sMDP_SHA1=cPassWord;
    		   }
    Cordialement,

    Remss

  9. #9
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par remss02 Voir le message
    Juste lors de la conversion, les lettres minuscules se transforment en majuscules
    Est-ce que tu parles de la chaine de caractère hexadécimale dans la variable LHexStr?

    Si c'est le cas alors il suffit d'utiliser la méthode LowerCase:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        LHexStr = LHexStr.LowerCase(); // Met le texte en minuscule
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Crayon Voir le message
    Est-ce que tu parles de la chaine de caractère hexadécimale dans la variable LHexStr?

    Si c'est le cas alors il suffit d'utiliser la méthode LowerCase:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        LHexStr = LHexStr.LowerCase(); // Met le texte en minuscule
    Oui c'est exactement ça, merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Algorithme hachage type Md5 ou sha1
    Par shaun_the_sheep dans le forum Sécurité
    Réponses: 5
    Dernier message: 22/09/2006, 17h47
  2. Md5/Sha1 : Vérification de l'intégrité d'un fichier
    Par ShinMei dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 26/05/2005, 10h43
  3. Décryptage de SHA1
    Par emaluk dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 30/03/2005, 17h12
  4. SHA1 ou MD5 en ASP ?
    Par bigsister dans le forum ASP
    Réponses: 3
    Dernier message: 01/02/2005, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo