前言

在python存入数据库时,如果数据库的主键不是自增方式,那么我们可能需要自己生成一个唯一标识符,现在最好的方法就是md5加密生成的32位作为主键,本文将会介绍python的两种自动生成唯一标识的方式。

python MD5加密方法

     在介绍方式之前先了解一下python如何对数据进行md5加密

依赖包 :

import  hashlib

用法:

def md5(string):# 对要加密的字符串进行指定编码string = string.encode(encoding ='UTF-8')# md5加密print(hashlib.md5(string))# 将md5 加密结果转字符串显示string = hashlib.md5(string).hexdigest()

方法一:

依赖包:

import uuid

用法:

# 获取唯一加密值,uuid1 根据主机mac地址和时间戳生成全球唯一加密值唯一缺点会暴露mac地址
id = uuid.uuid1()
#将生成的加密值去除-获得32位加密值
id = id.replace('-','')

知识点

uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现。有时也称guid(global unique identifier)。python中自带了uuid模块来进行uuid的生成和管理工作。

  python中的uuid模块基于信息如MAC地址、时间戳、命名空间、随机数、伪随机数来uuid。具体方法有如下几个:  

  uuid.uuid1()  基于MAC地址,时间戳,随机数来生成唯一的uuid,可以保证全球范围内的唯一性,缺点会暴露mac地址。

  uuid.uuid2()  算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。不过需要注意的是python中没有基于DCE的算法,所以python的uuid模块中没有uuid2这个方法。

  uuid.uuid3(namespace,name)  通过计算一个命名空间和名字的md5散列值来给出一个uuid

  uuid.uuid4()  通过伪随机数得到uuid,是有一定概率重复的

  uuid.uuid5(namespace,name)  和uuid3基本相同,只不过采用的散列算法是sha1

--------------------- 

参考文档:https://www.cnblogs.com/hellojesson/p/6410445.html

https://www.cnblogs.com/franknihao/p/7307224.html

方法二:

依赖包:

import hashlib
import os

用法:

//利用os随机生成26个字符 然后对其md5加密

id = hashlib.md5(os.urandom(26)).hexdigest()

知识点:

os.urandom(n)函数

函数定位: Return a string of n random bytes suitable for cryptographic use. 
意思就是,返回一个有n个byte那么长的一个string

在文档中,被归结于os这个库的Miscellaneous Functions,意思是不同种类的函数(也可以说是混种函数) 
原因是: This function returns random bytes from an OS-specific randomness source. (函数返回的随机字节是根据不同的操作系统特定的随机函数资源。即,这个函数是调用OS内部自带的随机函数的。有特异性)
--------------------- 
参考文档:https://blog.csdn.net/a19990412/article/details/80934268

python学习之路—自动生成唯一标识(md5加密方式)相关推荐

  1. python namespace unique_Python使用uuid库生成唯一标识ID

    uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现.有时也称guid(global unique identifier). ...

  2. Python学习之路9☞面向对象的程序设计

    Python学习之路9☞面向对象的程序设计 一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什 ...

  3. python list转字符串_我用python写了个自动生成给文档生成索引的脚本!懒人智慧...

    我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库: PiperLiu / ACMOI_Journey ,记录自己的刷题轨迹,并总结一下方法.心得.想到一个 ...

  4. Python学习之路—2018/6/20

    Python学习之路-2018/6/20 1.模板语法之变量 views.py def index(request):import datetimes="gyq"l=[1,2,3] ...

  5. python图书馆管理系统实验报告_基于Python的图书馆业务报表自动生成研究

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的图书馆业务报表自动生成研 究 作者:辛海滨 来源:<电脑知识与技术> 2016 年第 27 期 摘要:针对 ...

  6. Vue中使用uuidv1根据时间戳和MAC地址生成唯一标识

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_若依前后端分离搭建 在上面搭建起来Vue项目的基础上,怎样 ...

  7. 「懒惰的美德」我用 python 写了个自动生成给文档生成索引的脚本

    我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库:PiperLiu / ACMOI_Journey,记录自己的刷题轨迹,并总结一下方法.心得.想到一个需求 ...

  8. 我的Python学习之路(一)_Mr_Ouyang

    我的Python学习之路(一)_Mr_Ouyang 笔者按: 本文从18:55开始写作,至19:38中断,又从21:12始继续,至23:22写就. 共计耗时113分钟,总字数9081字,约80.4字/ ...

  9. Python 自动化教程(4) : 自动生成PPT文件 Part 2 (干货)

    系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...

最新文章

  1. 干货 | 45张图庖丁解牛18种Queue,你知道几种?
  2. 使用ajaxfileupload.js实现文件上传
  3. sqlyog设置自动补全_sqlyog智能提示如何设置?sqlyog智能提示设置流程介绍
  4. linux安装软件方法汇总
  5. SQL SERVER 2008的GEOMETRY类型
  6. 用jQuery做点击下箭头改变方向
  7. YYYY-mm-dd HH:MM:SS大小写解释
  8. switchhost使用与注意事项
  9. 厦门大学计算机调剂要求,厦门大学调剂公告
  10. uni-app微信公众号(1)——网页授权登录
  11. 用@ExceptionHandler 来进行异常处理
  12. 【Linux】time+dd测试硬盘读写速度
  13. Modelsim的使用方法
  14. android_图片转视频_image2video
  15. ArrayList删除元素的细则
  16. Codeforces Round #818 (Div. 2)
  17. 一台计算机怎么弄2个登录桌面,一台主机两个显示器 教您电脑两个显示器怎么设置 - 云骑士一键重装系统...
  18. 老主板并口安装串口硬盘总攻略!~
  19. R语言实现LDA算法(鸢尾花)
  20. OSError: [WinError 216] 该版本的 %1 与您运行的 Windows 版本不兼容。

热门文章

  1. web.xml文件中classpath路径指的哪个路径
  2. 微信小程序常用文档地址(自用常更新)
  3. PT8020(十触控 IIC 输出 IC)
  4. 微服务框架 SpringCloud微服务架构 服务异步通讯 51 死信交换机 51.3 延迟队列 51.3.1 延迟队列 51.3.2 延迟队列插件
  5. 全栈工程师到底有什么用
  6. 自媒体运营4个超实用的网站,速速收藏起来
  7. 智能电视 android,智能电视:Android真的是期盼已久的免费午餐?
  8. 哈工大软件构造实验一
  9. metasploit - nops
  10. 关于c++ find返回值类型 与string::nops的使用的若干问题