吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4172|回复: 48
上一主题 下一主题
收起左侧

[Windows] UUID生成器单文件版

  [复制链接]
跳转到指定楼层
楼主
al6868 发表于 2024-6-18 00:04 回帖奖励



UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来。为了提高效率,常用的UUID可缩短至16位。UUID用来识别属性类型,在所有空间和时间上被视为唯一的标识。一般来说,可以保证这个值是真正唯一的任何地方产生的任意一个UUID都不会有相同的值。使用UUID的一个好处是可以为新的服务创建新的标识符。标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx(8-4-4-4-12)。


最近自己刚好需要一键生成UUDI功能,所以就自己弄了一个软件附带了网页版。有用也没用,看个人使用吧。


优点:不像网页版一样需要网络才能够使用
缺点:不如网页版一样便携可以随时在有网络的环境中打开使用


下载地址:https://wwz.lanzout.com/iFSrP223u4he

免费评分

参与人数 8吾爱币 +7 热心值 +6 收起 理由
Cudet + 1 谢谢@Thanks!
15911974915 + 1 谢谢@Thanks!
supernox + 1 + 1 我很赞同!
奥卡姆 + 1 + 1 热心回复!
xiaofeng2004 + 1 我很赞同!
fx65128 + 1 + 1 谢谢@Thanks!
hello555 + 1 + 1 谢谢@Thanks!
dogox + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
紫蝶冰澜 发表于 2024-6-18 14:22
UUID标准有很多,你这个是哪一个标准?

- v1 - 使用当前时间和本地机器上的网络接口的MAC地址(或节点)生成。
- ~~v2~~ - 在v1的基础上,将时间字段低位替换为本地账户的ID,使得在时间地点创作者三个参数上尽可能让其唯一。
- v3 - 基于命名空间的MD5哈希生成。
- v4 - 使用随机数据生成。
- v5 - 基于命名空间的SHA1哈希生成。(注意:这通常是版本3的替代方案,SHA1比MD5更安全)
- v6 - 在v1的基础上,通过时间实现单调递增的生成(注意:这通常是版本1的替代方案,解决了v1的值分散和无法顺序插入的缺点)。
- v7 - 使用Unix Epoch毫秒时间戳并结合版本4的填充随机数据的方式生成(注意:这通常是版本6的替代版本,并且兼容ULID)。
- v8 - 使用用户定义的数据生成(version=48-51bit,variant=64-65bit,`UUID: ffeeddcc-bbaa-8988-b766-554433221100`)。

[C] 纯文本查看 复制代码
use ulid::Ulid;
use base32::Alphabet;
use uuid::{NoContext, Timestamp, Uuid};

fn main() {
    let v7 = Uuid::new_v7(Timestamp::now(NoContext));
    // 第一步:获取UUIDv7的二进制表示
    let bytes = v7.as_bytes();
    // 第二步:创建一个长度为20字节的字节数组v,并全部初始化为0
    let mut v = Vec::from([0u8; 20]);
    // 第三步:将UUIDv7的16字节二进制数据填充到v的末尾(从第5个字节开始,因为ULID通常包含一个4字节的时间戳前缀)
    v[4..].clone_from_slice(bytes);
    // 第四步:将填充后的20字节数据v转换为Crockford版本的base32编码(不含 ILOU 四个字符)
    let base32 = base32::encode(Alphabet::Crockford, v.as_slice());
    // 第五步:由于ULID通常包含一个时间戳前缀的编码,我们截取base32编码字符串的剩余部分(跳过前6个字符)
    let ulid = &base32[6..];
    println!("{}", ulid);

    let u = v7.as_u128();
    let ulid = Ulid::from(u);
    println!("{}", ulid.to_string());
}

免费评分

参与人数 1热心值 +1 收起 理由
xpj4186 + 1 Enumerable.Range(1, 10).Select(_ => Guid.NewGuid().ToString())

查看全部评分

沙发
masterbugs 发表于 2024-6-18 00:31
3#
wfn84 发表于 2024-6-18 03:53
头像被屏蔽
4#
pj666a 发表于 2024-6-18 06:44
提示: 作者被禁止或删除 内容自动屏蔽
5#
CQGaxm 发表于 2024-6-18 06:52
感谢楼主辛苦分享
6#
龍謹 发表于 2024-6-18 06:54
不明觉厉,先备着吧。
7#
hello555 发表于 2024-6-18 06:55
先下载备用,感谢分享
8#
Tath 发表于 2024-6-18 06:59
试试。谢谢。支持
9#
xt202403 发表于 2024-6-18 07:06
谢谢分享
10#
Myh3553 发表于 2024-6-18 07:11
赞一个   希望以后多多分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 10:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表