javascript GUID base64转换似乎无法正常工作

时间:2016-11-25 08:59:19

标签: javascript node.js base64 uuid guid

由于Node.js

中的某些原因,我尝试在base64字符串中转换GUID

我的功能是

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 =='。

我相信我可能做错了什么,却无法找到我做错的事。

1 个答案:

答案 0 :(得分:2)

Javascript convert GUID in string format into Base64

当它是Big Endian时,您可以检查转换是否与此处的结果相同,因此我认为这不是一个大问题。