Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [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