2016-07-14 5 views
0

Ich habe einen base64 string:PHP base64_decode kehrt hex oder NULL

AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc= 

ich den rohen base64 nehmen kann, kopieren und einfügen und durch bash base64 -d laufen oder php_decode() und es funktioniert. Aber wenn ich die Variable aus einem Post mit file_get_contents ('php: // input') in PHP ergreife, wird es nicht funktionieren. Allerdings kann ich den JSON-codierten Post unter Verwendung von error_log() protokollieren und dort das Formular kopieren und einfügen, und es funktioniert. Ich kann den Base64-Wert wiedergeben und alles erscheint normal. Aber sobald ich base64_decode um die Zeichenfolge wickle, erhalte ich Fehler. Wenn es darauf ankommt, sind die ersten zwei Zeichen der dekodierten Zeichenfolge "; 0". Ich dachte, dass möglicherweise verursacht PHP sein hex?

Entschuldigung für den unordentlichen Debug-Code, aber das sollte einige Beispiele veranschaulichen.

$sub_id = get_field($json[$i], "subscriber-id", "null"); 
error_log("type: " . gettype($sub_id)); 
error_log("$i raw: |$sub_id|"); 
$decoded = base64_decode($sub_id); 
error_log("$i decoded: $decoded"); 
error_log("$i raw sub-id: " . $sub_id); 
$iccid_a = array(); 
$raw_sub_id = $sub_id; 
$ret = exec("echo \"$raw_sub_id\" | base64 -d ",$iccid_a); 
error_log(print_r($iccid_a,1)); 

ich diese Ausgabe:

Typ: string

0 roh: |AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=|

0 decodiert: \ x02

0 rohen Teilnummer: AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=

Array \ n (\ n [0] => \ x02

Antwort

1

Ihre dekodierten Daten beginnen mit einigen nicht druckbaren Zeichen, die möglicherweise nicht gut mit dem wiedergegeben werden, was Sie als Anzeige verwenden. aussehen, aber das Problem ist nicht mit base64_decode()

$ php -r 'echo base64_decode("AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=");' | hexdump -C 
00000000 02 00 00 3b 01 30 33 31 32 31 33 30 30 30 30 30 |...;.03121300000| 
00000010 30 30 39 30 34 40 6e 61 69 2e 65 70 63 2e 6d 6e |[email protected]| 
00000020 63 31 33 30 2e 6d 63 63 33 31 32 2e 33 67 70 70 |c130.mcc312.3gpp| 
00000030 6e 65 74 77 6f 72 6b 2e 6f 72 67     |network.org| 
0000003b 

Ich weiß nicht, was genau sind Sie die entschlüsselten Daten zu erwarten.

Verwandte Themen