JavaScript的GUID base64转换似乎并没有工作

我尝试在Node.js中由于某些原因在base64string中转换GUID

我的function是

function encode(guid) { let buffer = new Buffer(guid.replace(/-/g, ""), 'hex'); let ret = buffer.toString('base64'); ret = ret.replace(/\//g, "_").replace(/\+/g, "-"); return ret.substring(0,22); //FIXME } function decode(encoded_string) { let buffer = new Buffer(encoded_string + '==', 'base64'); let ret = buffer.toString('hex'); ret = ret.replace(/_/g, "/").replace(/-/g, "+"); return ret; } 

我用guid ='c9a646d3-9c61-4cb7-bfcd-ee2522c8f633'

结果是'yaZG05xhTLe_ze4lIsj2Mw'

也很好解码(没有短划线)。

但是,根据http://guid-convert.appspot.com/

转换后的结果是'00 amyWGct0y/ze4lIsj2Mw=='。

我相信我可能做错了什么,但找不到我做错了什么。

Javascript将string格式的GUID转换为Base64

当你是Big Endian的时候,你可以检查你的转换和结果是否一致,所以我不认为这是一个大问题。