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 ...
随机推荐
- 【VS开发】【DSP开发】TCP和UDP数据包结构
TCP (Transport Control Protocol)传输控制协议: 1.TCP数据包的分组格式: A,源端口:标识源端应用进程. B, 目的端口:标识目的端应用进程. C, 序号:在SYN ...
- NoSQL--leveldb
什么是leveldb: leveldb它是一个 NOSQL 存储引擎,它和 Redis 不是一个概念.Redis 是一个完备的数据库,而 LevelDB 它只是一个引擎. LevelDB 还可以将它看 ...
- AI 资源帖
https://github.com/mnielsen/neural-networks-and-deep-learning openCV笔记 https://blog.csdn.net/qq_2689 ...
- xshell设置
登录脚本: #定义rz,sz自动下载路径 #保持窗口活动状态, 空闲时每120秒发送一个回车
- CentOS7安装rabbitMQ,并实现浏览器访问
第一.安装wget yum install wget 第二.下载erlang和rabbitmq-server的rpm (1)在/usr/local下创建目录rabbitMQ,并进入该目录 (2)下载 ...
- SQLite基础-2.PyCharm+Database_Navigator
目录 一.PyCharm + Database Navigator插件 二.SQLite Expert – Personal Edition 三.SQLite Administrator 一.PyCh ...
- C++多线程基础学习笔记(三)
一.detach()大坑 上一篇随笔(二)中提到detach()是用来分离主线程和子线程的,那么需要考虑一个问题,就是如果主线程跑完了,主线程中定义的变量就会被销毁(释放内存),这时回收变量仍作为参数 ...
- 十进制快速幂(牛客多校第五场)-- generator 1
思路: 十进制快速幂. #include <stdio.h>//sprintf #include <cstdlib>////malloc exit strcat itoa sy ...
- bash 转换为C代码
bash 转换为C代码,并编译为可执行文件 [root@localhost ~]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9. ...
- python网络爬虫(6)爬取数据静态
爬取静态数据并存储json import requests import chardet from bs4 import BeautifulSoup import json user_agent='M ...