我想將base64字符串轉換回python中的GUID樣式十六進制數並且出現問題。在python中解碼base64 guid
Base64編碼字符串爲:bNVDIrkNbEySjZ90ypCLew==
,我需要拿回來:2243d56c-0db9-4c6c-928d-9f74ca908b7b
我可以用下面的PHP代碼做到這一點,但不能工作,如何將其在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))
));
}
這裏是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);
}
這裏有一些使用一些明顯的和不那麼明顯的選擇結果:
import base64
import binascii
>>> base64.b64decode("bNVDIrkNbEySjZ90ypCLew==")
'l\xd5C"\xb9\rlL\x92\x8d\x9ft\xca\x90\x8b{'
>>> binascii.hexlify(base64.b64decode("bNVDIrkNbEySjZ90ypCLew=="))
'6cd54322b90d6c4c928d9f74ca908b7b'
您是否嘗試過?隨意查看['base64'](https://docs.python.org/3.4/library/base64.html)。 – msvalkon
是的,我已經嘗試了大部分base64.b64解碼選項等。讓我更新結果 – Andrew
好吧,你可以看到你的base64編碼數據不符合你的期望。 – msvalkon