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++ Discussion :

fonction SHA-1 en C++


Sujet :

C++

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut fonction SHA-1 en C++
    Je voudrais utiliser la classe SHA1 définit ici.
    Mais je me pose 2, 3 questions :
    • cette classe marche-t'elle sous d'autre OS que Windows
    • Comment doit-elle être importer ? include, ajout de dll ...
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
           array<Byte>^ data = gcnew array<Byte>( DATA_SIZE );
      array<Byte>^ result;
      
      SHA1^ sha = gcnew SHA1CryptoServiceProvider;
      // This is one implementation of the abstract class SHA1.
      result = sha->ComputeHash( data );
      A quoi correspond dans ce code :
      • le symbole '^' ? c'est pareil que '*' ? pseudo-code ?
      • l'opérateur "gcnew" ? est-ce une MACRO qui ajoute des fonction en plus d'appelé new (gestion d'un garbage collector, ...) ?
    • Si cette classe ne me corresponds pas (pas multi-OS), que puis-je utiliser ? Je veux juste effectuer ce que fait le code ci-dessus, obtenir un SAH1 hash à partir d'une chaine de caractère.
    Merci.

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    La classe que tu indiques fait partie du .NET Framework

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Ce langage n'est pas du C++, mais du C++/CLI.
    ^ indique un type pointeur managé.
    gcnew retourne de la mémoire managée.

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    La classe que tu indiques fait partie du .NET Framework
    J'imagine que tu sous-entends que cette classe est multi-plateforme tout comme .NET. Si ce n'était pas le cas, ton message ne sert à rien, je sais lire


    Ce langage n'est pas du C++, mais du C++/CLI.
    ^ indique un type pointeur managé.
    gcnew retourne de la mémoire managée.
    Ok donc cette classe ne me convient pas.

    Quelqu'un connait une fonction/classe standard de préférence, qui me permettrait de faire ce que fait le code ci-dessus en C++ ?

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Citation Envoyé par atha2
    J'imagine que tu sous-entends que cette classe est multi-plateforme tout comme .NET. Si ce n'était pas le cas, ton message ne sert à rien, je sais lire
    Que tu sache lire ne fait surement aucun doute,
    Comprendre ce que tu lis, j'en ai quelques doutes !

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    pour le multi-plateforme je me suis un peu avancé, c'est possible mais pas si simple
    Mais je ne vois toujours pas ou tu veux en venir...

  7. #7
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    .NET , c'est comme Java, mais seulement pour Windows...

    Enfin, concrètement, ce code n'est valable que dans l'environnement .NET, il faut que le l'environnement d'exécution .NET soit installé sur la plateforme hôte pour que, une fois "compilé" (notez les guillemets) avec le compilo de M$, le programme puisse fonctionner. Hors bien sûr, .NET a été par M$ pour M$, il n'existe que pour Windows. Le seul aspect multi-plateforme, c'est que le programme tournera sur XP, sur Vista, sur Windows Mobile, etc. Donc tant que tu restes chez M$, quoiqu'il me semble qu'il y a le projet Mono, qui doit porter le framework pour Linux.

    c'est l'appel au garbage collector (GCnew), pour qu'il associe un objet 'truc' au 'handle' t. Attention : ça ressemble à un pointeur, ça a le goût d'un pointeur, ça fait coin-coin comme un pointeur, mais ce n'est PAS un pointeur !!!

    Mais bon, on ne va pas entrer dans les détails ici, il y a un forum C++/CLI pour ça

  8. #8
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Il y a une implémentation portable de .NET c'est mono.

  9. #9
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    Mono est déjà disponible, ou c'est encore en cours de développement ?

  10. #10
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Mono est dipo depuis un bon moment, par contre je suis pas sûr que ca supporte tout le .Net. Mais n'étant pas connaisseur dans ce domaine, je laisse ma place
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  11. #11
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    La partie windows native n'est pas supportée par Mono (XNA par exemple, ou pas de DirectX.Net).

    Pour ce qui est de la portabilité de l'executable, on peut compiler "completement" et dans ce cas, l'executable est lié à la plateforme désirée.
    Mais on peut aussi compiler "un peu" (à la Java), et l'executable est alors portable, la plateforme .Net d'execution se chargeant de la compilation finale (un peu comme Java JIT, à condition d'avoir la bonne machine Java ).

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Quelqu'un connait une implémentation C/C++ de cette fonction/classe ?

  13. #13
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Heo,
    Citation Envoyé par atha2 Voir le message
    Quelqu'un connait une implémentation C/C++ de cette fonction/classe ?
    Avec Google, tu trouveras des milliers de pages parlant de cet algorithme, dont une bonne partie te donneront l'implémentation en C et autres langages.

  14. #14
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Oui je n'en doute pas mais en faite je chercher un truc de standard sans classe à ajouter au projet. Mais si je ne trouve pas j'y serait bien obliger.

  15. #15
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Ya rien de standard qui fournisse des algo de cryptage. (en C++ du moins)

  16. #16
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Merci.

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

Discussions similaires

  1. Fonction hachage SHA-256
    Par Gunny dans le forum Développement
    Réponses: 3
    Dernier message: 26/05/2010, 17h27
  2. Fonction de hachage SHA ou whirlpool
    Par thms92 dans le forum C++
    Réponses: 3
    Dernier message: 01/09/2008, 18h09
  3. Fonction de hashage SHA-1 en VBScript
    Par gderenne dans le forum ASP
    Réponses: 1
    Dernier message: 25/07/2007, 19h06
  4. [Oracle / Fonction hachage] Fonction de hachage SHA / MD5
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 8
    Dernier message: 26/01/2006, 08h58
  5. Réponses: 6
    Dernier message: 08/01/2006, 12h49

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