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
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
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
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
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
- 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
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 !
Salut, voici comment faire à l'aide d'Indy (inclus dans RAD Studio).
Il faut d'abord ajouté ceci:
Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #include <IdHashSHA.hpp> #include <IdStrings.hpp>
Dans LBytes tu as la valeur en binaire et LHexStr est une chaine de caractères en hexadécimal.
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;
À 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
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 :
Cordialement,
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; }
Remss
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager