J'essaie de convertir une chaîne base64 en un nombre hexadécimal de style GUID en python et ayant des problèmes.décodage base64 guid en python
chaîne encodée base64 est: bNVDIrkNbEySjZ90ypCLew==
Et je dois le remettre à: 2243d56c-0db9-4c6c-928d-9f74ca908b7b
Je peux le faire avec le code PHP suivant, mais ne peut pas fonctionner comment Tô en Python
function Base64ToGUID($guid_b64) {
$guid_bin = base64_decode($guid_b64);
return join('-', array(
bin2hex(strrev(substr($guid_bin, 0, 4))),
bin2hex(strrev(substr($guid_bin, 4, 2))),
bin2hex(strrev(substr($guid_bin, 6, 2))),
bin2hex(substr($guid_bin, 8, 2)),
bin2hex(substr($guid_bin, 10, 6))
));
}
Voici la version GUIDtoBase64:
function GUIDToBase64($guid) {
$guid_b64 = '';
$guid_parts = explode('-', $guid);
foreach ($guid_parts as $k => $part) {
if ($k < 3)
$part = join('', array_reverse(str_split($part, 2)));
$guid_b64 .= pack('H*', $part);
}
return base64_encode($guid_b64);
}
Voici quelques-uns des résultats en utilisant certains des évidentes et pas si des options évidentes:
import base64
import binascii
>>> base64.b64decode("bNVDIrkNbEySjZ90ypCLew==")
'l\xd5C"\xb9\rlL\x92\x8d\x9ft\xca\x90\x8b{'
>>> binascii.hexlify(base64.b64decode("bNVDIrkNbEySjZ90ypCLew=="))
'6cd54322b90d6c4c928d9f74ca908b7b'
Avez-vous essayé? N'hésitez pas à regarder [base64] (https://docs.python.org/3.4/library/base64.html). – msvalkon
Oui, j'ai essayé la plupart des options de base64.b64decode etc. Laissez-moi mettre à jour avec les résultats – Andrew
Eh bien, vous pouvez voir que vos données codées en base64 ne correspondent pas à ce que vous attendez qu'il soit. – msvalkon