javascript - 随机生成的本地存储 key

标签 javascript random save

我正在创建一些需要许多本地存储 key 的东西。因此我希望使用Math.floor来随机生成用户 key 。

我使用以下方法保存本地存储 key

var randomnumber = Math.floor((Math.random()*100000000)+1)
var randomnumberstringify = String(randomnumber) 

    function savebox(id) {
        var answer = document.getElementById('box').value;
        document.write(randomnumberstringify);
        localStorage.setItem(randomnumberstringify, answer);
    }

以及以下加载 key

    function loadbox() {
        if (localStorage.getItem(randomnumberstringify)) {
        var answer = localStorage.getItem(randomnumberstringify);
    }

    else {
        var answer = ' ';
    }

    document.getElementById('box').value = answer;
    }

但是,正如您所看到的,加载函数使用“randomnumberstringify”。这是另一个随机数

所以本质上你保存一个随机数并加载另一个随机数(这显然不存在

是否有更好的方法使用随机数作为加载 key 和保存 key ?

最佳答案

如果您的 loadsave 调用发生在同一浏览器 session 中,并且您的 randomnumberstringify 键存在于两者均可访问的范围内的 saveload 函数,并且不会再次为该范围重新创建,您应该可以使用这种方法。

但是,您想要做的是使用本地存储作为持久存储单元,这意味着您希望在不同的页面加载或不同的浏览器 session 中为给定用户访问相同的数据,其中在每次加载中,javascript 变量空间都会获得已删除。

如果您的情况是后一种情况,您应该使用哈希函数来生成 key ,并使用用户相关的字符串来生成哈希函数,这样您最终每次都会为相同的用户生成相同的 key 。

例如,假设您在 JavaScript 环境中定义了 sha1 哈希函数

var randomnumberstringify = sha1('username');

这种 key 生成方法允许您每次为同一用户获取相同的 key 。您可以毫无问题地设置并仅获取相关数据。

这里:http://www.webtoolkit.info/javascript-sha1.html你可以找到哈希函数 SHA1 的 JavaScript 实现。

关于javascript - 随机生成的本地存储 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19224387/

相关文章:

random - 随机惰性流 : When does evaluation happen?

python - 在内存python中下载pdf

matlab - 在 MATLAB 中保存来自轴的图像

javascript - .on ("click"、 "img",函数 (e) 在回发后不起作用

javascript - 将按钮绑定(bind)到根据文本框中值的大小激活的多个文本框

c# - 使用 cshtml 和 javascript 动态更改下拉列表

file - 在 Verilog 中从 txt 读取和写入数组

javascript - 将 jquery 选择器对象添加到单个 jquery 对象中

c++ - 泊松分布或正态分布

ios - 如何在屏幕的任意位置随机移动(平移)图片?