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()); }
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
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 solutionjuste 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();
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
Partager