PHP-Funktion/Script nach Autoit portieren

  • Hi,

    wäre cool wenn mir jemand folgendes PHP-Script nach Autoit-Portieren könnte. Sprich also den übergebene String base64 decoden und das Ergebnis dann base16 encoden:

    Übergeben wird z.b.: ByJG+vcfheXXp0poGT3hdPKtcgg=
    Und als Ergebnis sollte dann das rauskommen: ahccegpkphbpifofnhkhekgibjdnobhepcknhcai

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    • Offizieller Beitrag

    Die Funktion "Base64Decode" ist nicht von mir. Die hatte ich irgendwann mal archiviert.
    Die PHP-Funktion habe ich Dir mal in AutoIt umgeschrieben:

    Spoiler anzeigen
    [autoit]


    $string = 'ByJG+vcfheXXp0poGT3hdPKtcgg='
    ConsoleWrite($string & @CR)
    $string = Base64Decode($string)
    ConsoleWrite(Base16Encode($string) & @CR)

    [/autoit] [autoit][/autoit] [autoit]

    Func Base64Decode($s)
    ; by Eddy
    Local $key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', _
    $t = '', $p = -8, $a = 0, $c, $d, $len = StringLen($s)
    For $i = 1 to $len
    $c = StringInStr($key, StringMid($s, $i, 1), 1) - 1
    If $c < 0 Then ContinueLoop
    $a = BitOR(BitShift($a, -6), BitAND($c, 63))
    $p = $p + 6
    If $p >= 0 Then
    $d = BitAND(BitShift($a, $p), 255)
    If $c <> 64 Then $t = $t & Chr($d)
    $a = BitAND($a, 63)
    $p = $p - 8
    EndIf
    Next
    Return $t
    EndFunc ;==>Base64Decode

    [/autoit] [autoit][/autoit] [autoit]

    Func Base16Encode($str)
    Local $aKey = StringSplit('abcdefghijklmnop', '', 2), $char, $ret = ''
    For $i = 1 To StringLen($str)
    $char = Asc(StringMid($str, $i, 1))
    $ret &= $aKey[BitShift(BitAND($char, 0xF0), 4)]
    $ret &= $aKey[BitAND($char, 0x0F)]
    Next
    Return $ret
    EndFunc

    [/autoit]