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

VBScript Discussion :

[VBS] décodage base 64 [FAQ]


Sujet :

VBScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 44
    Points
    44
    Par défaut [VBS] décodage base 64
    salut a tous,

    existe-t-il une fonction API ou uneautre maniere de décoder une chaine codée en base 64 ( je ne connais rien en algo )

    merci

  2. #2
    Expert confirmé
    Avatar de grafikm_fr
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 470
    Points : 5 059
    Points
    5 059
    Par défaut
    Salut,

    Ce code c'est du VBS, mais je pense qu'il doit etre adaptable en moins de deux au VB (logique )

    Teste-le et tiens-moi au courant stp...
    Merci

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Function Base64Decode(ByVal base64String)
      Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
      Dim dataLength, sOut, groupBegin
     
      'remove white spaces, If any
      base64String = Replace(base64String, vbCrLf, "")
      base64String = Replace(base64String, vbTab, "")
      base64String = Replace(base64String, " ", "")
     
      'The source must consists from groups with Len of 4 chars
      dataLength = Len(base64String)
      If dataLength Mod 4 <> 0 Then
        Err.Raise 1, "Base64Decode", "Bad Base64 string."
        Exit Function
      End If
     
     
      ' Now decode each group:
      For groupBegin = 1 To dataLength Step 4
        Dim numDataBytes, CharCounter, thisChar, thisData, nGroup, pOut
        ' Each data group encodes up To 3 actual bytes.
        numDataBytes = 3
        nGroup = 0
     
        For CharCounter = 0 To 3
          ' Convert each character into 6 bits of data, And add it To
          ' an integer For temporary storage.  If a character is a '=', there
          ' is one fewer data byte.  (There can only be a maximum of 2 '=' In
          ' the whole string.)
     
          thisChar = Mid(base64String, groupBegin + CharCounter, 1)
     
          If thisChar = "=" Then
            numDataBytes = numDataBytes - 1
            thisData = 0
          Else
            thisData = InStr(1, Base64, thisChar, vbBinaryCompare) - 1
          End If
          If thisData = -1 Then
            Err.Raise 2, "Base64Decode", "Bad character In Base64 string."
            Exit Function
          End If
     
          nGroup = 64 * nGroup + thisData
        Next
     
        'Hex splits the long To 6 groups with 4 bits
        nGroup = Hex(nGroup)
     
        'Add leading zeros
        nGroup = String(6 - Len(nGroup), "0") & nGroup
     
        'Convert the 3 byte hex integer (6 chars) To 3 characters
        pOut = Chr(CByte("&H" & Mid(nGroup, 1, 2))) + _
          Chr(CByte("&H" & Mid(nGroup, 3, 2))) + _
          Chr(CByte("&H" & Mid(nGroup, 5, 2)))
     
        'add numDataBytes characters To out string
        sOut = sOut & Left(pOut, numDataBytes)
      Next
     
      Base64Decode = sOut
    End Function
    "L'éducation, c'est le début de la richesse, et la richesse n'est pas destinée à tout le monde" (Adolphe Thiers)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 44
    Points
    44
    Par défaut
    ça merche tres bien ,meme pas besoin d'adaptation, merci bcp

    PS: je pense que ça pourrait aller dans les astuces ou la FAQ

Discussions similaires

  1. [VBS] MS SQL : liste bases et fichiers
    Par parker13 dans le forum VBScript
    Réponses: 0
    Dernier message: 31/03/2009, 10h22
  2. Langage pour le codage d'une base de connaissances
    Par jphilve dans le forum Prolog
    Réponses: 1
    Dernier message: 04/09/2007, 21h44
  3. Réponses: 7
    Dernier message: 26/05/2007, 15h14
  4. [vbs] récupérer une valeur dans la base de registre
    Par PiuPiu dans le forum VBScript
    Réponses: 2
    Dernier message: 22/12/2006, 18h04
  5. VBS : creation d'une clé dans la base de registre
    Par parker13 dans le forum VBScript
    Réponses: 2
    Dernier message: 25/08/2006, 16h30

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