python-加密算法
#!/usr/bin/python3
# coding:utf-8
# Auther:AlphaPanda
# Description: 使用hashlib模块的md5和sha系列加密算法对字符串进行加密;使用hmac模块的new方法对字符串进行加密;使用os模块的urandom方法生成指定长度的二进制字节流
# Version:1
# Date:Fri Dec 6 20:08:37 EST 2019
import hashlib
import random
# 生成一个md5对象
hs = hashlib.md5()
# 使用hs对象自带的update方法,对"abc123"字符串进行加密
hs.update("abc123".encode("utf-8"))
# 使用对象的hexdigest方法,获取加密后的字符串
print(hs.hexdigest()) # 普通的MD5加密算法加密的字符串强度不够,容易被破解。可以在加密时加上其他字符串来增强安全性
# 这个加上其他字符串的过程,俗称加盐。
# 注意:在加盐时,需要在生成对象的时候加,另外需要注意的是,加入的是字节流
hs = hashlib.md5("Michael91".encode("utf-8"))
hs.update("abc123".encode("utf-8"))
print(hs.hexdigest()) # 如果使用固定字符串加盐还不够,可以使用随机数据加密
str_new = str(random.randrange(100,10000))
hs = hashlib.md5(str_new.encode())
hs.update("abc123".encode())
print(hs.hexdigest()) # sha1加密算法
hs = hashlib.sha1()
hs.update("abc123".encode())
print(hs.hexdigest()) hs = hashlib.sha1("Michael".encode())
hs.update("abc123".encode())
print(hs.hexdigest()) # hmac加密
import hmac
key = b"abc"
msg = b"I love you"
hm = hmac.new(key,msg)
print(hm.hexdigest()) key1 = b"vmasdf"
meg1 = b"shabi"
hm = hmac.new(key1,meg1)
print(hm.hexdigest()) import os
# 随机返回指定长度得二进制字节流
key2 = os.urandom(32)
print(key,len(key))
message = b"thank you"
hm = hmac.new(key2,message)
print(hm.hexdigest()) # 使用os模块得urandom方法生成指定长度的二进制字节流
key3 = os.urandom(16)
mes1 = b"i like"
hm = hmac.new(key3,mes1)
print(hm.hexdigest())
python-加密算法的更多相关文章
- python 加密算法及其相关模块的学习(hashlib,random,string,math)
加密算法介绍 一,HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种 ...
- python加密算法及其相关模块的学习(hashlib,RSA,random,string,math)
加密算法介绍 一,HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种 ...
- Padding Oracle Attack的一些细节与实现
Padding Oracle Attack还是颇具威力的,ASP.NET的Padding Oracle Attack被Pwnie评为2010年最佳服务端漏洞之一.还是看 Juliano Rizzo a ...
- 【python网络编程】使用rsa加密算法模块模拟登录新浪微博
一.基础知识 http://blog.csdn.net/pi9nc/article/details/9734437 二.模拟登录 因为上学期参加了一个大数据比赛,需要抓取数据,所以就想着写个爬虫抓取新 ...
- python之路第五篇之模块和加密算法(进阶篇:续)
模块 Python中,如果要引用一些内置的函数,该怎么处理呢?在Python中有一个概念叫做模块(module) 简单地说,模块就是一个保存了Python代码的文件. 模块分类: 1)内置模块 2)自 ...
- python 想搞加密算法吗?快戳这里
加密算法介绍 一,HASH Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换 ...
- Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥。
Python 通过脚本获取Android的apk的部分属性,再通过加密算法生成秘钥. #!/usr/bin/env python # -*- coding: utf- -*- import os im ...
- python爬虫基础06-常见加密算法
Python与常见加密方式 前言 数据加密与解密通常是为了保证数据在传输过程中的安全性,自古以来就一直存在,古代主要应用在战争领域,战争中会有很多情报信息要传递,这些重要的信息都会经过加密,在发送到对 ...
- python实现AES/DES/RSA/MD5/SM2/SM4/3DES加密算法模板汇总
都是作者累积的,且看其珍惜,大家可以尽量可以保存一下,如果转载请写好出处https://www.cnblogs.com/pythonywy 一.md5加密 1.简介 这是一种使用非常广泛的加密方式,不 ...
- RSA非对称加密算法实现:Python
RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院工作.RSA ...
随机推荐
- 【DSP开发】C6000非多核非KeyStone系列DSP中断系统
C6000系列DSP的中断系统 上一篇介绍了C6455的GPIO系统,最后把GPIO4配置成了中断/事件模式,本文将介绍C6455的中断系统,介绍完基本概念后,给出把GPIO4映射到INT4的代码. ...
- AS将一个项目导入到另一个项目中
需求:有项目A,B.需要将B集成到A中,作为A的一个模块. 方法: 1.将B工程的app下面的build.gradle文字中 apply plugin: 'com.android.applicati ...
- Java 虚拟机的运行模式
这几天在读周志明老师的<深入理解JVM虚拟机> 讲到了 java的运行模式, 有mixed 模式 interpret模式还有compile模式.效果如下面所示 java -version ...
- Java基础(六)
面向对象 概述 生活举例 代码体验 类与对象的关系 类的定义 根据类创建对象 对象的基本使用 练习:手机类与对象 内存图:一个对象 内存图:两个对象 内存图:同一个对象 局部变量与成员变量的区别 pr ...
- 集合运算 - Java实现集合的交、并、差
1.使用java的Set实现集合的交.并.差 package com.lfy.Set; import java.util.HashSet; import java.util.Set; /** * 集合 ...
- sql server case when
case具有两种格式:简单Case函数和Case搜索函数 简单case函数 实例:CASE sex when '1' then '男' when '2' then'女' els ...
- Design Support库中的控件
1.NavigationView滑动菜单 2.FloatIngActionButton悬浮按钮 3.Snackbar二次交互提示的按钮 4.Coordinatorlayout,监听子控件的各种事件(加 ...
- django-Auth模块(详细介绍)
转载自https://www.cnblogs.com/liuqingzheng/articles/9628105.html 1 Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们 ...
- 关于不同retina的布局
不同retina,显示高度不一样,很显然最细的线条最美 <!DOCTYPE html> <html lang="en"> <head> < ...
- 帝国cms 通过文章的id获取信息
获取栏目id为13下id为46的数据 [e:loop={"select * from phome_ecms_news where classid = 13 and id = 46" ...