Python之加密模块

hashlib模块

  1. 加密方式以md5方式加密举例
  2. 是标准模块,直接导入即可
  3. 还有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密后的字符串长度更长,安全性更高

一、加密步骤

1、字符串先转成二进制类型

使用.encode()方法转成二进制类型

import hashlib
password=‘123456‘
print(password.encode())#字符串不能直接加密,要先转成二进制类型的才可以加密
#结果为:b‘123456‘

2、使用加密方法

使用.hexdigest()方法输出加密后内容

import hashlib
password=‘123456‘
m=hashlib.md5(password.encode()) #先转成二进制,再加密
#print(dir(m)) #由于这个加密模块pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用内置函数dir(),使用这条语句就能打印出所有方法了
print(m.hexdigest())

3、打印加密后的内容

使用dir()内置函数显示该变量的所有方法

由于该模块pycharm无法提供提示方法,即输入m“.”不出来方法,所以可以使用内置函数dir(),将所有方法打印出来。

#print(dir(m)) #由于这个加密模块pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用内置函数dir(),使用这条语句就能打印出所有方法了
print(m.hexdigest())

二、加密相关

1、检验加密结果

  • 由于md5方式加密完的字符串无论原字符串有多长都是32位,因此可以使用len()方法检验是否加密成功:
print(len(m.hexdigest())

2、md5加密之后是不可逆的

  • 网络上可以解密的原理是撞库,即:将常用的密码加密完存在数据库里,然后直接搜库。

如果输入的加密后密码碰巧数据库里有,就能把对应的加密前密码返回给你,并不是真正的解密。

3、其他的加密方式

  • 本文的加密方式以md5方式加密举例,还有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密后的字符串长度更长,安全性更高。
m=hashlib.sha1(password.encode())#不同的加密方式
m=hashlib.sha224(password.encode()) #不同的加密方式
m=hashlib.sha256(password.encode()) #不同的加密方式

三、加盐

原理:

如果要对password=123456加密,这个明文密码太简单,容易撞库解密,所以在123456之后随机加一个字符串,比如abc,这样实际是对123456abc进行加密,如果不知道abc这个字符串,反解的可能性降低,安全性更高。这样的一个字符串就叫做盐。

四、实际应用

#实现加密:传入一个值,如果有盐值,则加盐加密;否则直接加密
def my_md5(s:str,salt=None):
    s=str(s)
    if salt:
        s=s+salt
    m=hashlib.md5(s.encode())
    return m.hexdigest()

原文地址:https://www.cnblogs.com/turboliu/p/10459879.html

时间: 2024-11-08 23:08:05

Python之加密模块的相关文章

python md5 加密模块

今天有同学找到我说,能不能写一个简单的python md5加密模块,作为服务器端程序的响应函数.信息安全之类的问题了.md5采用单向加密机制. 直接上代码: (k1, k2 是系统自动生成的随机整数,user_name是用户名) def encrypt (a="user_name" , k1=1 , k2=1): #get system time b = time.strftime('%Y%m%d%H%M',time.localtime(time.time())) ka1 = k1;

python的加密模块(md5,sha,crypt)学习

python的加密模块(md5,sha,crypt)学习 命令行使用python MD5: [email protected]:~/data/work/svn/v1.4.0_dev/APPS$ python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license&

python: hashlib 加密模块

加密模块hashlib import hashlib m=hashlib.md5() m.update(b'hello') print(m.hexdigest()) #十六进制加密 m.update(b'world') print(m.hexdigest()) #这个的加密是(b('helloworld')) #5d41402abc4b2a76b9719d911017c592 #fc5e038d38a57032085441e7fe7010b0 s=hashlib.md5() s.update(b

Python 的MD5模块

1.md5是Python的加密模块:但是具体的原理我还没有搞懂. 第一种: import md5 src = 'this is a md5 test.' m1 = md5.new() m1.update(src) print m1.hexdigest() 1 # -*- coding:utf-8 -*- 2 3 import md5 4 5 str = 'i am is md5' 6 m = md5.new() 7 m.update(str) 8 # 16进制 9 print m.hexdige

Ansible批量自动化管理工具入门

一.虚拟机版本 1.需要利用7.5版本虚拟机 2.7.5版注意事项: [2.1].网卡名叫ens32同样配置文件也是ens32 [2.2].命令:systemctl 统一管理命令, 例,systemctl stop iptables.service 关闭防火墙 [2.3].设置开机自启动防火墙:systemctl enable firewalld [2.4].设置开机关闭防火墙(必须关闭) :systemctl disable firewalld [2.5].必 须 关 闭 :systemctl

python基础六--加密模块hashlib

python加密模块hashlib 1.md5加密实例 import hashlib def md5passwd(password): m=hashlib.md5() m.update(bytes(password,encoding='utf-8')) new_password=m.hexdigest() #加密后十六进制显示 # new_password=m.digest() #加密后二进制显示 print('加密后的密码是:%s'%new_password) return new_passw

Python:hashlib加密模块,flask模块写登录接口

hashlib模块 主要用于加密相关的操作,(比如说加密字符串)在python3的版本里,代替了md5和sha模块,主要提供 sha1, sha224, sha256, sha384, sha512 ,md5 这些加密方式 import  hashlib m = hashlib.md5()   #用md5加密的方式(md5加密后无法解密),创建一个md5的对象 m.update(b"Hello")  #b代表二进制字节bytes,把字符串hello转成字节,然后加密:用b给一个变量转换

python之hashlib加密模块

简介: 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模块,简单说明下md5和sha的使用. 什么是摘要算法呢? 摘要算法又称为哈希算法,散列算法.它通过一个函数,把任意长度的数据转换为一个长度固顶的数据串(通常用16进制的字符串表示)用于加密相关的操作. 应用: 1. md5加密 1 hash = hashlib.md5() 2 hash.update('adm

Python全栈之路----常用模块----hashlib加密模块

加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值. 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算法,他把一