首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JS获取UUID及其它随机字符串

JS获取UUID及其它随机字符串

作者头像
码客说
发布于 2024-01-12 01:29:59
发布于 2024-01-12 01:29:59
97903
代码可运行
举报
文章被收录于专栏:码客码客
运行总次数:3
代码可运行

前言

开发过程中我们可能需要一些不重复的数字或字符串,根据使用场景的不同我们可以使用不同的方式。

UUID

基本能保证唯一。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function generateUUID() {
  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
代码运行次数:0
运行
AI代码解释
复制
let mSet = new Set();;
for(let i=0;i<10000;i++){
    mSet.add(generateUUID());
}
console.info(mSet.size);

或者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let arr = [];
for(let i=0;i<10000;i++){
    arr.push(generateUUID());
}
const uniqueArr = [...new Set(arr)];
console.info(uniqueArr.length);

时间戳

不太适用与保证唯一的地方,但是比如页面添加参数来禁用缓存的时候可以使用时间戳。

毫秒

在 JavaScript 中,你可以使用 Date.now() 方法来获取当前的时间戳。

它返回自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来经过的毫秒数。

以下是一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var timestamp = Date.now();
console.log(timestamp);

这将在控制台输出当前的时间戳。

要获取当前的时间戳(以秒为单位),你可以使用 Math.floor() 函数将毫秒时间戳除以 1000 并向下取整。

下面是一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var timestampInSeconds = Math.floor(Date.now() / 1000);
console.log(timestampInSeconds);

这将输出当前的时间戳(以秒为单位)到控制台。请注意,Date.now() 返回的是当前的毫秒时间戳,通过除以 1000 并向下取整,可以将其转换为以秒为单位的时间戳。

时间戳+随机字符串

基本也能保证唯一,并且好处在于前8位是按照时间排序的,性能相比于UUID会高一点。

不适用于要保证完全唯一的场景。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getRandomStr(){
    return Date.now().toString(36)+Math.random().toString(36).substring(2, 10);
}

测试一下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let mSet = new Set();;
for(let i=0;i<10000;i++){
    mSet.add(getRandomStr());
}
console.info(mSet.size);

我这里测试了一万次基本上不会重复。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
BUUCTF 刷题笔记——Crypto 1
密码共十位,已有信息可作为密码的有 zhangsan 以及生日数字序列 19900315,因此对该信息的全部或者部分提取并排列组合便可得出密码,当然本题较为简单,密码为 zs19900315。
h-t-m
2023/03/15
2.4K0
BUUCTF 刷题笔记——Crypto 1
BuuCTF之Crypto解题记录
题如其名就是md5,这里推荐一个md5在线解码网站,直接解码就行了,答案admain1
十二惊惶
2024/02/28
1.1K0
HSC-1th WP CRYPTO
仿射密码加密,先根据密文和明文,爆破各位置存在 flag 字符串情况下对应的 a,b 值,再解密整串密文。爆破求 a,b 。
中龙技术
2022/09/29
7410
HSC-1th WP CRYPTO
BUU-Crypto-第二章
好耶,排名涨到12000+了,就做了十道题就涨了近4000名,瞬间信心就上来了,同时也说明一个问题,绝大多数萌新就在一开始就放弃了,但是如果能静下心来,慢慢钻研,就能有所突破。
Baige
2022/03/22
6670
BUU-Crypto-第二章
攻防世界-Crypto-进阶
解密摩斯电码得到flag:ALEXCTFTH15O1SO5UP3RO5ECR3TOTXT
小简
2022/12/28
1.4K0
攻防世界-Crypto-进阶
CTF入门学习笔记——Crypto密码(现代密码)
🚀🚀当N比较小的时候,可以直接通过factordb分解N来获得p,q,进而得到d,起到解密的效果。
小点点
2023/10/16
1.9K0
BJDCTF2020
一个简单的隐写题目, 压缩包里面有个hello.zip,用winhex打开,可以知道这是一张图片,改成png,打开发现是一个二维码,扫二维码得到flag:xaflag{i_am_a_tupian}
十二惊惶
2024/02/28
1810
2022年QFNU春季赛WP
微信搜索好友,查看个性签名得到flag ,也是因为当时我们觉得这个签到,有点离谱,就又出了一道真签到。
十二惊惶
2024/02/28
1770
2022年QFNU春季赛WP
jarvisoj-Crypto
jarvisoj-Crypto Medium RSA 题目到手后给了一个公钥和一个密文 我们对这个公钥提取信息: 可以得到 N = 0xC2636AE5C3D8E43FFB97AB09028F1AAC
安恒网络空间安全讲武堂
2018/02/06
4.7K0
jarvisoj-Crypto
Jarvis OJ平台basic部分writeup
题目 Base64? 关于USS Lab Veryeasy 段子 手贱 美丽的实验室logo veryeasyRSA 神秘的文件 公倍数 Secret 爱吃培根的出题人 Easy RSA 取证 熟悉的
安恒网络空间安全讲武堂
2018/02/06
1.6K0
Jarvis OJ平台basic部分writeup
CRYPTO基础题-攻防世界
引言:这里是我做的攻防世界-crypto-基础题的一些writeup,希望能够大家一些参考,部分解题思路借鉴了其他博主,如果哪些地方有问题或更好的思路,可以一起探讨。 所用环境以及做题思路只在当时写下writeup时适用,若之后做出改动可与我联系,做出相应更改。 转载请标明出处 Crypto-基础题 1.base64
Baige
2022/03/18
2.6K0
CRYPTO基础题-攻防世界
WUST-CTF2020部分wp
下载附件得到一个txt文件,看起来是空白的,全选后可以发现其中有长短不一的内容,而且只有两种长度
回天
2023/04/25
5000
WUST-CTF2020部分wp
SharifCTF 2018 Crypto writeup
本文作者:HeartSky 之前的SharifCTF,其中密码学部分有许多有意思的题目,因此来分享下相关解题过程。 0x01 DES See known_plaintexts.txt. There
安恒网络空间安全讲武堂
2018/03/26
1.8K0
RSA常见解题思路及技巧
1977年,麻省理工学院的 Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出了一种非对称加密算法,用他们三人的姓氏缩写命名为 RSA。RSA 既不是惟一,也不是最早的非对称加密算法。但它是使用最广泛,因而也是最重要的非对称加密算法。
tinyfisher
2019/11/20
5.1K0
RSA原理
素数:素数又称质数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
安恒网络空间安全讲武堂
2018/12/24
3.2K0
hgame-week2-writeup
我们可以控制 get 成这样的值:_POST[_SESSION][username] = 1
HomeboyC
2022/09/19
6290
hgame-week2-writeup
buuctf_crypto部分wp(6.21更)
题目附件中给出的文档明确指出本题的考点,并且给了一个码表,我们需要对照给的密文和码表还原出原来的base64密文才能进行解密
回天
2023/04/25
4860
buuctf_crypto部分wp(6.21更)
HGAME 2022 Week3 writeup
首先我们访问页面看看,结合题目描述我们猜测到,漏洞产生的点可能是这个Summ3r 安全中心,也就是对应题目Security Center,那么这个页面的接口redirect.php以Get请求接收url参数,所以注入的点就非常有可能在这个地方。除此之外我们还会发现,注释处隐藏了hint,我们访问一下installed.json文件,发现项目使用了框架sympony和twig,twig是个php的模板语言,那么这时候我们已知使用了twig这个模板语言并且已知twig的版本是3.x,然后我们进行SSTI即可。
ek1ng
2022/08/10
1.5K0
HGAME 2022 Week3 writeup
【愚公系列】2021年12月 攻防世界-简单题-CRYPTO-011(Normal_RSA)
题目描述:你和小鱼走啊走走啊走,走到下一个题目一看你又一愣,怎么还是一个数学题啊 小鱼又一笑,hhhh数学在密码学里面很重要的!现在知道吃亏了吧!你哼一声不服气,我知道数学 很重要了!但是工具也很重要的,你看我拿工具把他解出来!你打开电脑折腾了一会还真的把答案 做了出来,小鱼有些吃惊,向你投过来一个赞叹的目光
愚公搬代码
2021/12/27
4970
【愚公系列】2021年12月 攻防世界-简单题-CRYPTO-011(Normal_RSA)
RSA算法的使用及逆向中的识别技巧
本文属于OneTS安全团队成员flatcc的原创文章,转载请声明出处!本文章仅用于学习交流使用,因利用此文信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,OneTS安全团队及文章作者不为此承担任何责任。
OneTS安全团队
2025/02/07
1610
RSA算法的使用及逆向中的识别技巧
相关推荐
BUUCTF 刷题笔记——Crypto 1
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档