Hallo Profis,
ich habe in einer Datenbank ein paar Angaben, die unter Windows mit VBA recht simpel verschlüsselt wurden.
Wenn ich nun die Entschlüsselung nach php umsetze, dann schießen mir leider die Stringfunktionen dazwischen, da sie scheinbar glauben, der String hätte sonstwas für ein Format und geben dann Unsinn aus.
Als Beispiel der verschlüsselte String "¦ÞµºÎ× hg", unter VBA kommt bei der Entschlüsselung folgendes heraus:
¦ÞµºÎ× hg
9
1:¦:166
2:Þ:222
3:µ:181
4:º:186
5:Î:206
6:×:215
7: :160
8:h:104
9:g:103
Das sind der Reihe nach der zu entschlüsselnde String, die länge dieses Strings und dann je Zeichen "Index" : "Char Zeichen" : "Ascii Code".
unter php bekomme ich
"¦ÞµºÎ× hg"
16
b"""
\n
1:¦:166\n
2:Ã:195\n
3:ž:158\n
4:Â:194\n
5:µ:181\n
6:Â:194\n
7:º:186\n
8:Ã:195\n
9:Ž:142\n
10:Ã:195\n
11:—:151\n
12:Â:194\n
13: :160\n
14:h:104\n
15:g:103\n
16::0\n
"""
""
Erstens verstehe ich nicht, woher die Zeile b""" kommt aber vor allem ist schon die Länge 16 falsch, richtig wäre wie oben 9. Danach sind ab dem zweiten Zeichen nicht nur alle Ascii Codes falsch, sondern bereits die einzelnen Zeichen, die angezeigt werden. Nur das erste ist richtig. Die Eingabezeichenfolge "¦ÞµºÎ× hg", aus der die Zeichen extrahiert werden wird aber wiederum korrekt angezeigt.Ich habe teilweise schon versucht die Behandlung als ASCII Code zu erzwingen aber erfolglos.
Hier der Code, der die o.a. Ausgabe erzeugt:
Ich bin für jeden Tipp dankbar, wie ich das ganze umstellen muss, um das gleiche Resultat, wie ganz oben zu bekommen
lg.
K.
ich habe in einer Datenbank ein paar Angaben, die unter Windows mit VBA recht simpel verschlüsselt wurden.
Wenn ich nun die Entschlüsselung nach php umsetze, dann schießen mir leider die Stringfunktionen dazwischen, da sie scheinbar glauben, der String hätte sonstwas für ein Format und geben dann Unsinn aus.
Als Beispiel der verschlüsselte String "¦ÞµºÎ× hg", unter VBA kommt bei der Entschlüsselung folgendes heraus:
¦ÞµºÎ× hg
9
1:¦:166
2:Þ:222
3:µ:181
4:º:186
5:Î:206
6:×:215
7: :160
8:h:104
9:g:103
Das sind der Reihe nach der zu entschlüsselnde String, die länge dieses Strings und dann je Zeichen "Index" : "Char Zeichen" : "Ascii Code".
unter php bekomme ich
"¦ÞµºÎ× hg"
16
b"""
\n
1:¦:166\n
2:Ã:195\n
3:ž:158\n
4:Â:194\n
5:µ:181\n
6:Â:194\n
7:º:186\n
8:Ã:195\n
9:Ž:142\n
10:Ã:195\n
11:—:151\n
12:Â:194\n
13: :160\n
14:h:104\n
15:g:103\n
16::0\n
"""
""
Erstens verstehe ich nicht, woher die Zeile b""" kommt aber vor allem ist schon die Länge 16 falsch, richtig wäre wie oben 9. Danach sind ab dem zweiten Zeichen nicht nur alle Ascii Codes falsch, sondern bereits die einzelnen Zeichen, die angezeigt werden. Nur das erste ist richtig. Die Eingabezeichenfolge "¦ÞµºÎ× hg", aus der die Zeichen extrahiert werden wird aber wiederum korrekt angezeigt.Ich habe teilweise schon versucht die Behandlung als ASCII Code zu erzwingen aber erfolglos.
Hier der Code, der die o.a. Ausgabe erzeugt:
Code:
$lenEnc = mb_strlen($strToDecode, 'ASCII'); //for($i=1; $i <= $lenEnc; $i++) { // $strResult .= chr(GetOfIndex(ord(right($strToDecode,$lenEnc - $i +1)), VirtPos($i, $lenPw, $cfc))); //} $r = ""; $vp = 0; $asci = 0; $gofi = 0; $char = ""; $rTest = "\n"; for($i=1; $i <= $lenEnc; $i++) { $r = mb_substr($strToDecode, $i, 1, "ASCII"); $vp = VirtPos($i, $lenPw, $cfc); $asci = ord($r); $rTest .= $i . ":" . $r . ":" . $asci . "\n"; } dd($strToDecode, $lenEnc, $rTest, $strResult);
lg.
K.
Kommentar