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

Langage Perl Discussion :

Conversion chaine en Base64 vers binaire


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Conversion chaine en Base64 vers binaire
    Bonjour,

    pour les besoins d'un projet je dois convertir une chaine base64 en hexadecimal.
    J'ai 2 chaines en base64 que je dois convertir en binaire, pour ensuite retirer certains octets des 2 trames binaires, et enfin les comparer entre elles.
    J'ai donc essayé d'utiliser MIME::Base64.
    Mon soucis, quand je convertis la chaine et que je fais print, j'obtiens bien la conversion mais elle s'affiche sous forme ascii.

    Exemple :
    my $chaine ="aa"
    my $chainedecodee = decode_base64($chaine);
    print $chaine donne 'i' au lieu de '01101001'

    Comment forcer perl a utiliser des valeurs binaires pour que ma variable soit du genre 01101001 ???

    Merci d'avance.

    PS : je suis pas un professionnel du Perl :-)

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Utilise unpack() avec B* :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $code ="aa"
    my $result = unpack( 'B*', decode_base64($code));
    print $results;
    --
    Jedaï

  3. #3
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #!/usr/bin/perl
     
    use strict;
    use warnings;
     
    my $chaine = 'i';
    &binchar($chaine);
     
    sub binchar {
    	my ($char) = @_;
    	my $ordinalvalue = ord($char);
    	print "[$char] vaut [$ordinalvalue] en décimal";
     
    	my $binstring = '';
    	for (my $power = 0; $power < 8; $power++) {
    		my $bitactive = ($ordinalvalue >> $power) & 1;
    		$binstring = sprintf("%d%s", ($bitactive, $binstring));
    	}
    	print " et [$binstring] en binaire";
    }
    sortie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [i] vaut [105] en décimal et [01101001] en binaire

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci pour les 2 réponses surtout le unpack(). :-)
    Mon probleme est réglé.
    Bonne fin de journée.

Discussions similaires

  1. [2008R2] Conversion Chaine "12.20" vers float
    Par Almindra dans le forum SSIS
    Réponses: 0
    Dernier message: 15/12/2011, 18h02
  2. Conversion chaine binaire vers TimeDate48
    Par clem67 dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/05/2011, 11h13
  3. Réponses: 18
    Dernier message: 10/04/2009, 10h27
  4. Réponses: 15
    Dernier message: 16/08/2007, 11h47
  5. conversion de int vers binaire
    Par ben83 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 12/02/2007, 19h19

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