import hashlib

'''
用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
'''
##############MD5#################
def func_MD5(string):
hash=hashlib.md5()
hash.update(string)
m=hash.hexdigest()
print (m)
func_MD5("123") ######## sha1 #####################
def func_sha1(string):
hash = hashlib.sha1()
hash.update(bytes(string))
print(hash.hexdigest())
func_sha1("123")
# ######## sha256 ########
def func_sha256(string):
hash = hashlib.sha256()
hash.update(bytes(string))
print(hash.hexdigest())
func_sha256("123")
# ######## sha384 ########
def func_sha384(string):
hash = hashlib.sha384()
hash.update(bytes(string))
print(hash.hexdigest())
func_sha384("123")
# ######## sha512 ########
def func_sha512(string):
hash = hashlib.sha512()
hash.update(bytes(string))
print(hash.hexdigest()) func_sha512("123")
'''
以上加密算法虽然厉害,但存在缺陷,可通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
''' def func_MD5_deep(string):
hash=hashlib.md5(bytes("sdfgdfsgsdf")) #key加密
hash.update(string)
m=hash.hexdigest()
print(m) func_MD5_deep("123")
-----------------------------------------------------------------

202cb962ac59075b964b07152d234b70
   40bd001563085fc35165329ea1ff5c5ecbdbbeef
   a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
   9a0a82f0c0cf31470d7affede3406cc9aa8410671520b727044eda15b4c25532a9b5cd8aaf9cec4919d76255b6bfb00f
   3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7ab1c1eb8b85103e3be7ba613b31bb5c9c36214dc9f14a42fd7a2fdb84856bca5c44c2
   066290ee749d0cc66116a3f55ecc241c

-----------------------------------------------------------------
'''
练习题:注册登录加密函数
'''
def fun_md5(arg):
hash=hashlib.md5(bytes("1232..gg"))
hash.update(arg)
m=hash.hexdigest()
return m def register(user2,pwd2):
with open("denglu.db","wb") as f:
temp=user2+"|"+fun_md5(pwd2)
f.write(temp)
def login(user1,pwd1):
with open("denglu.db","r") as f:
for line in f:
a,b=line.strip().split("|")
if user1==a and fun_md5(pwd1)==b:
print("登录成功!")
else:
print("用户名和密码不匹配!")
def func():
temp=input("1:登录,2注册")
if temp==1:
user = raw_input("请输入用户名:")
pwd = raw_input("请输入密码:")
login(user,pwd)
else:
user = raw_input("请输入用户名:")
pwd = raw_input("请输入密码:")
register(user,pwd) func()

五、python中MD5加密的更多相关文章

  1. Python 获取MD5加密值

    Python 获取MD5加密值方法封装 import hashlib def get_md5(s): """获取MD5加密值 :param s: 需要加密的字符串 :re ...

  2. python 中md5 和 sha1 加密, md5 + os.urandom 生成全局唯一ID

    首先先来介绍一下md5 和 sha1 的概念 MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法).128位长度.目前MD5是一种不可逆算法. 具有很高的安全性 ...

  3. 关于CryptoJS中md5加密以及aes加密的随笔

    最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...

  4. iOS中MD5加密字符串实现

    1.MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321 ...

  5. Python中hash加密

    目录 简介 概念 特点 hash有哪些 算法碰撞 加盐防碰撞 加密 hashlib 主要方法 特有方法 使用方法 加盐 crypt 主要方法 使用说明 应用 密码加密 应用一致性校验 简介 概念 散列 ...

  6. java中MD5加密的小使用

    最近项目中需要用到md5加密,就自己在网上看了看. package com.wxgs.ch01; import java.security.MessageDigest; import java.sec ...

  7. C#中MD5加密

    C#中进行MD5加密需要使用MD5这个类,这个类位于System.Security.Cryptography命名空间. 转到元数据得知MD5是抽象类和两个静态方法 上代码详解: //得到其静态方法创建 ...

  8. Android中MD5加密

    最近项目中遇到MD5加密,代码很简单,又是死代码,不过要注意当长度不足32的时候要补个0.下面是具体代码,直接拷贝就能用. public static String getMD5(String str ...

  9. 一小部分用python进行MD5加密的小技巧

    上个图 要求计算出开头为ae3da且盐值为3c6e的字符串 简单的思路就是直接进行枚举,然后筛选符合条件的MD5加密字符,代码如下 #-*- coding:utf- -*- import hashli ...

随机推荐

  1. Linux下部署springboot项目的步骤及过程

    最近在研究将springboot项目部署到Linux服务器上,由于springboot是内嵌了tomcat,所以可以直接将项目打包上传至服务器上.我是在idea上的项目,所以我就基于此说下过程. (一 ...

  2. 使用Lombok来优雅的编码

    介绍在项目中使用Lombok可以减少很多重复代码的书写.比如说getter/setter/toString等方法的编写. IDEA中的安装打开IDEA的Setting –> 选择Plugins选 ...

  3. 数据库备份及SQL脚本导入

    数据库备份及SQL脚本导入 数据导出 su - oracle exp 数据库用户名/数据库密码@ORCL file=20190905.dmp full=y SQL脚本导入 首先导入前查看Oracle用 ...

  4. yum 安装mysql-server 5.6

    # rpm ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm # yum install -y mysql-s ...

  5. urllib urllib2学习笔记

    Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能.他们两个最显着的差异如下: urllib2可以接受一个Request对象,并以此可以来设置一个URL的h ...

  6. nslookup 工具的使用方法记录

    查询IP地址 nslookup最简单的用法就是查询域名对应的IP地址,包括A记录和CNAME记录,如果查到的是CNAME记录还会返回别名记录的设置情况.其用法是: nslookup 域名 定查询记录类 ...

  7. python 文件夹压缩

    import os import zipfile def zipDir(dirpath,outFullName): """ 压缩指定文件夹 :param dirpath: ...

  8. 转:ThreadLocal剖析

    转自http://www.cnblogs.com/dolphin0520/p/3920407.html 一.对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方 ...

  9. SQL优化之表连接方式

    1.嵌套循环(DESTED LOOPS) Note:嵌套循环被驱动表必须走索引,而且索引只能走INDEX UNIQUE SCAN或者INDEX RANGE SCAN SQL> select /* ...

  10. Python 3标准库第四章

    第四章日期和时间-----------------    不同于int.float和str,Python没有包含对应日期和时间的原生类型,不过提供了3个相应的模块,可以采用多种表示来管理日期和时间值. ...