我试图在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版本:
^{pr2}$以下是使用一些明显的和不太明显的选项得出的一些结果:
import base64
import binascii
>>> base64.b64decode("bNVDIrkNbEySjZ90ypCLew==")
'l\xd5C"\xb9\rlL\x92\x8d\x9ft\xca\x90\x8b{'
>>> binascii.hexlify(base64.b64decode("bNVDIrkNbEySjZ90ypCLew=="))
'6cd54322b90d6c4c928d9f74ca908b7b'
我需要这样做来解码从Mongodb转储的BASE64 UUID。最初这块地是猫鼬创造的。基于@tpatja的代码,我使用的代码如下:
现有函数的Python端口(bitstring必需)
首先,如果我们正确解码,b64字符串和生成的GUID不匹配。在
您发布的结果GUID的base64编码版本错误。我不确定我一开始不明白你对GUID的编码方式。在
所有的Python工具必须能够回答这个问题。不过,下面是我在python终端中所做的粗略描述:
^{pr2}$这段代码应该给你足够的提示来构建你自己的函数。别忘了,pythonshell为您提供了一个强大的工具来测试和使用代码和思想。我会用笔记本之类的东西来研究。在
相关问题 更多 >
编程相关推荐