Python的加密模块md5、sha、crypt使用实例

作者:mingaixin 时间:2022-02-17 14:44:44 

MD5(Message-Digest Algorithm 5) 模块用于计算信息密文(信息摘要),得出一个128位的密文。sha模块跟md5相似,但生成的是160位的签名。使用方法是相同的。

如下实例是使用md5的:


# /usr/bin/python
# -*- coding:utf-8 -*-
import base64
try:
    import hashlib
    hash = hashlib.md5()
except ImportError:
    # for Python << 2.5
    import md5
    hash = md5.new()
hash.update('spam,spam,and egges')
value = hash.digest()
print repr(value)   #得到的是二进制的字符串
print hash.hexdigest()  #得到的是一个十六进制的值
print base64.encodestring(value) #得到base64的值


# /usr/bin/python
# -*- coding:utf-8 -*-
# 客户端与服务器端通信的信息的验证

import string
import random

def getchallenge():
    challenge = map(lambda i: chr(random.randint(0,255)),range(16))
    return string.join(challenge,"")

def getresponse(password,challenge):
    try:
        import hashlib
        hash = hashlib.md5()
    except ImportError:
        # for Python << 2.5
        import md5
        hash = md5.new()
    hash.update(password)
    hash.update(challenge)
    return  hash.digest()

print "client: ","connect"
challenge= getchallenge()
print "server: ",repr(challenge)
client_response = getresponse("trustno1",challenge)
print "client: ",repr(client_response)
server_response = getresponse("trustno1",challenge)
if client_response == server_response:
    print "server:","login ok"

crypt 模块(只用于 Unix)实现了单向的 DES 加密, Unix 系统使用这个加密算法来储存密码, 这个模块真正也就只在检查这样的密码时有用。

如下实例,展示了如何使用 crypt.crypt 来加密一个密码, 将密码和 salt组合起来然后传递给函数, 这里的 salt 包含两位随机字符.现在你可以扔掉原密码而只保存加密后的字符串了。


# /usr/bin/python
# -*- coding:utf-8 -*-

import crypt
import random,string

def getsalt(chars = string.letters+string.digits):
    return random.choice(chars)+random.choice(chars)

salt = getsalt()
print salt
print crypt.crypt('bananas',salt)

PS:关于加密技术,本站还提供了如下加密工具供大家参考使用:

MD5在线加密工具:http://tools.jb51.net/password/CreateMD5Password

Escape加密/解密工具:http://tools.jb51.net/password/escapepwd

在线SHA1加密工具:http://tools.jb51.net/password/sha1encode

短链(短网址)在线生成工具:http://tools.jb51.net/password/dwzcreate

短链(短网址)在线还原工具:http://tools.jb51.net/password/unshorturl

高强度密码生成器:http://tools.jb51.net/password/CreateStrongPassword

标签:Python,加密模块,md5,sha,crypt
0
投稿

猜你喜欢

  • asp防止同时登陆的问题

    2007-10-26 12:19:00
  • 星球大战与Python之间的那些事

    2023-05-25 13:49:35
  • 解决python3 urllib中urlopen报错的问题

    2022-01-11 10:33:32
  • GO语言利用K近邻算法实现小说鉴黄

    2023-06-21 17:15:25
  • Pytorch 实现focal_loss 多类别和二分类示例

    2021-09-16 17:53:36
  • Python远程linux执行命令实现

    2023-11-17 14:48:14
  • Python深度学习实战PyQt5菜单和工具栏功能作用

    2021-04-04 16:09:40
  • asp日历代码 显示农历

    2007-09-23 08:40:00
  • Git操作规范之tag的使用技巧详解

    2022-07-30 05:10:54
  • Yii开启片段缓存的方法

    2023-11-21 05:00:40
  • asp如何在数据库中用好Transaction?

    2010-06-22 21:07:00
  • Linux自动备份MySQL数据库脚本代码

    2024-01-24 05:00:12
  • 使用python编写脚本获取手机当前应用apk的信息

    2022-08-01 22:54:15
  • 基于python中staticmethod和classmethod的区别(详解)

    2023-09-30 22:03:32
  • Playwright快速上手指南(入门教程)

    2022-09-25 02:44:23
  • python 设置输出图像的像素大小方法

    2023-09-02 04:24:39
  • sql server 2008 忘记sa密码的解决方法

    2024-01-26 22:48:16
  • python tkinter界面居中显示的方法

    2023-10-14 11:16:18
  • 对TensorFlow的assign赋值用法详解

    2023-03-18 22:52:56
  • asp如何在刷新链接之前验证文件是否存在?

    2010-06-22 21:09:00
  • asp之家 网络编程 m.aspxhome.com