当前位置: 首页 > news >正文

探讨UUID和Secrets:确保唯一性与数据安全的利器

😀前言
在现代软件开发中,唯一标识符(UUID)和机密信息的处理是至关重要的。UUID是用于唯一标识数据记录和对象的128位值,确保了全球范围内的唯一性。同时,Python的secrets模块为处理机密信息提供了强大的随机数生成功能,适用于密码、身份验证和安全令牌等敏感数据的生成。在本文中,我们将深入探讨UUID的不同类型以及secrets模块的常用函数,以便更好地理解它们的用途和实际应用。

🏠个人主页:尘觉主页
在这里插入图片描述

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在csdn获奖荣誉: 🏆csdn城市之星2名
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🥰阿里云专家博主
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 😉亚马逊DyamoDB结营

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

文章目录

  • 探讨UUID和Secrets:确保唯一性与数据安全的利器
    • 1.uuid是什么?
    • 2.UUID的分类
    • 3.什么是Secrets
    • 😄总结

探讨UUID和Secrets:确保唯一性与数据安全的利器

1.uuid是什么?

UUID是Universally Unique IDentifier(普遍唯一的标识)

UUID代表通用唯一标识符,是一个128位的值,用于软件开发的唯一标识

UUID的生成基于当前时间戳和生成UUID的工作站的唯一属性

2.UUID的分类

uuid1

uuid.uuid1([node[,clock_seq]]):基于时间戳
"""
使用主机ID,序列号和当前时间来生成UUID,可保证全球范围的唯一性,但由于该方法生成的UUID中包含有主机的网络地址,可能危及隐私
如果node参数缺省,系统则自动调用getnode()函数获取主机的硬件地址
如果clock_seq缺省,则随机产生14位序列号代替
"""

uuid4

uuid.uuid4():基于随机数
'''
通过随机数来生成uuid,但使用的是伪随机数有一定的重复概率
'''

uuid3

uuid.uuid3(namespace,name):基于名字的MD5散列值
'''
通过计算命名空间和名字的MD5散列值来生成uuid,可以保证同一命名空间中不同名字的唯一性和不同命名空间的唯一性
'''
uuid.uuid3(uuid.NAMESPACE_DNS,'456')

uuid5

uuid.uuid3(namespace,name):基于名字的SHA-1散列值
'''
通过计算命名空间和名字的SHA-1散列值生成uuid,算法与uuid3相同
'''
uuid.uuid5(uuid.NAMESPACE_DNS,'456')

3.什么是Secrets

secrets是python3.6加入到标准库的,使用secrets模块,可以生成适用于处理机密信息(如密码,帐户身份验证,安全令牌)的加密强随机数。

常用函数说明实例
choice(sequence)从非空序列中选择一个元素secrets.choice([23,3,5,6])
randbelow(n)随机一个取[0,n)的整数secrets.randbelow(10)
randbits(n)在n位长度二进制数范围内随机取一位secrets.randbits(10)
token_bytes(n)随机生成n个字节以内的bytes类型字符串secrets.token_bytes(2)
token_hex(n)返回n位长16进制随机文本字符串secrets.token_hex(2)
taken_urlsafa(n)返回字节为nbytes的URL安全文本字符串。 文本以Base64编码,每个字节平均约为1.3个字符。secrets.token_urlsafe()
compare_digest(str,str)字符串比较,相等返回Truesecrets.compare_digest(‘a’,‘a’)

😄总结

通过本文,我们详细了解了UUID的不同分类,包括基于时间戳、随机数、MD5散列值和SHA-1散列值的生成方法。这些方法各自适用于不同的情景,确保了唯一性和隐私安全。此外,我们还介绍了Python的secrets模块,它为处理机密信息提供了强随机数生成的功能,可用于密码、身份验证和令牌等敏感数据的生成。使用这些工具,开发人员可以更好地确保数据的安全性和唯一性,从而提高应用程序的安全性和可靠性。

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

http://www.lryc.cn/news/171550.html

相关文章:

  • 06-Redis缓存高可用集群
  • LCP 18.早餐组合
  • Tomcat调优【精简版】
  • 通过NDK编译C程序运行在iMX6q开发板上
  • 【学习笔记】Java 一对一培训(2.1)Java基础语法
  • 外贸独立站哪家好?推荐的独立站建站平台?
  • 六、变量与常量
  • Fork() 函数:“父” 与 “子” 进程的交互(进程的创建)
  • JupyterNotebook设置Python环境的方法步骤
  • 腾讯云阿里云云服务器 Linux 操作系统 BT 宝塔面板快速建站教程
  • 【Linux】死锁理解
  • 基于Java所涉及的人工智能的框架
  • 【力扣】三角形最小路径和
  • 【Linux】指针常量和常量指针
  • LCP 22.黑白方格画
  • Java并发编程第8讲——ThreadLocal详解
  • 2023复旦大学计算机科学技术(网络空间安全)保研记录
  • linux系统通过docker安装python的jieba,如何找到jieba路径替换分词文件
  • Python Functions-函数
  • 【人工智能】机器学习的入门与提升
  • WEB漏洞原理之---【XMLXXE利用检测绕过】
  • element-table排序icon没有点亮
  • 传统的经典问题 Java 的 Interface 是干什么的
  • Linux 文件 目录管理
  • QT信号槽实现原理
  • 7-7 求鸡兔数量
  • CTF 全讲解:[SWPUCTF 2022 新生赛]webdog1__start
  • 聊天机器人
  • 肖sir__mysql之综合题练习__013
  • 阿里云服务器部署安装hadoop与elasticsearch踩坑笔记