我目前使用这个函数(Create GUID / UUID in JavaScript?)在Javascript中生成UUID:
lucid.uuid = function() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
return v.toString(16);
});
}
我知道所有的随机性都只来自于Javascript的Math.random()函数,而且我不在乎它是否符合UUID的RFC。我想要的是在Javascript字符串中尽可能地压缩尽量多的随机性。上述函数提供了大约128位的随机性。在Javascript中,我可以将128位随机性压缩到多小的字符串(以UTF8字节形式发送到HTTP POST)?如何生成这样的字符串?
编辑:当发送到服务器时,该字符串将是JSON对象的一部分,因此在字符串中需要转义的字符并不是很有用。