javascript GUID base64 转换似乎不起作用
javascript GUID base64 conversion doesn't seem to work
出于某些原因,我尝试在 base64 字符串中转换 GUID Node.js
我的职能是
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/
转换后的结果是'00amyWGct0y/ze4lIsj2Mw=='。
我相信我可能做错了什么,但找不到我做错了什么。
Javascript convert GUID in string format into Base64
当是Big Endian时,你可以检查你的转换是否与这里的结果相同,所以我认为这不是一个大问题。
出于某些原因,我尝试在 base64 字符串中转换 GUID Node.js
我的职能是
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/
转换后的结果是'00amyWGct0y/ze4lIsj2Mw=='。
我相信我可能做错了什么,但找不到我做错了什么。
Javascript convert GUID in string format into Base64
当是Big Endian时,你可以检查你的转换是否与这里的结果相同,所以我认为这不是一个大问题。