Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Verschlüsselung

BASE64 Kodier / Dekodier-Funktion

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.MitgliedThePuppetMaster 25.01.2013

Dieses Beispiel zeigt, wie ein Text in BASE64 Kodiert, und auch wieder Dekodiert werden kann.

Hierzu sind die folgenden Funktionennötig. (Darunter findet sich ein kleines Beispiel zur Nutzung.

Idealer weise wird der Code in eine .bi kopiert und in das Projekt eingebunden. Spart auch Platz .)

'###############################################################################################################
Function Base64_Decode(ByRef V_Source As String) As String
If V_Source = "" Then Return ""
Dim X as UInteger
Dim Base64_String as String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim Code(0 to 255) As UByte
For X = 0 to Len(Base64_String) - 1
    Code(Base64_String[X]) = X
Next
Dim D as String = V_Source
Dim XLen As UInteger = Len(D)
Dim XRest As UInteger = XLen Mod 4
If XRest > 0 Then D += String(4 - XRest, 0): XLen = Len(D)
Dim XCNT As UInteger
Dim Result(0 to XLen - 1) As UByte
For X = 0 To XLen - 1 Step 4
    Result(XCNT) = ((Code(D[X]) * 4 + Int(Code(D[X + 1]) / 16)) And 255): XCNT += 1
    Result(XCNT) = ((Code(D[X + 1]) * 16 + Int(Code(D[X + 2]) / 4)) And 255): XCNT += 1
    Result(XCNT) = ((Code(D[X + 2]) * 64 + Code(D[X + 3])) And 255): XCNT += 1
Next
ReDim Preserve Result(0 to XCNT - 1) as UByte
D = Space(XCNT)
For X = 0 to XCNT - 1
    If Result(X) = 0 Then Exit For
    D[X] = Result(X)
Next
Return D
End Function



'---------------------------------------------------------------------------------------------------------------
Function Base64_Encode(ByRef V_Source As String) As String
If V_Source = "" Then Return ""
Dim X as UInteger
Dim Base64_String as String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim XLen As UInteger = Len(V_Source)
Dim XRest As UInteger = XLen Mod 3
Dim XN As UInteger = XLen
If XRest > 0 Then XN = ((XLen \ 3) + 1) * 3
Dim D as String = String(4 * XN / 3, 0)
For X = 0 To XN / 3 - 1
    D[4 * X] = Base64_String[Int(V_Source[3 * X] / 4)]
    D[4 * X + 1] = Base64_String[(V_Source[3 * X] And 3) * 16 + Int(V_Source[3 * X + 1] / 16)]
    D[4 * X + 2] = Base64_String[(V_Source[3 * X + 1] And 15) * 4 + Int(V_Source[3 * X + 2] / 64)]
    D[4 * X + 3] = Base64_String[V_Source[3 * X + 2] And 63]
Next
Select Case XRest
    Case 1: D[Len(D) - 1] = 61: D[Len(D) - 2] = 61
    Case 2: D[Len(D) - 1] = 61
End Select
Return D
End Function

Und hier das Beispiel:

Dim D as String
Dim T as String
D = "Test.Hallo! Wie geht es dir?"
Print ">" & D & "<"
T = Base64_Encode(D)
Print ">" & T & "<"
Print ">" & Base64_Decode(T) & "<"

Viel Erfolg!


Zusätzliche Informationen und Funktionen
  Bearbeiten Bearbeiten  

  Versionen Versionen