python aes 加盐 加密解密

爬虫就是在学习的过程,前几天从某网站的js里学到的加密方式,通过下断点弄清加密原理后,用python复现一下,在这里和大家分享下

#--------引入模块--------
from Crypto.Cipher import AES
import base64
import time
import random
from hashlib import md5
from Crypto.Util.Padding import pad,unpad#--------函数区--------
def md(s,salt):#md5加密,盐加在了末尾,这个可以自定义,加在开头,加在中间斗ok的,只要两端的加密方式统一就可以mdd=md5()mdd.update(s+salt)return mdd.digest()def dec(key,iv,data):#aes解密decc= AES.new(key,AES.MODE_CBC,iv)result=unpad(decc.decrypt(data),block_size=16).decode()return resultdef enc(key,iv,data):#aes加密decc = AES.new(key, AES.MODE_CBC, iv)result=decc.encrypt(pad(data.encode(),block_size=16))return resultdef saltenc(xdata, ts):  # 加盐解密password = 'xxxxxxxxxxxxxxxxxxx:' + ts  # 加密的原始key,可以是你任意想输入的内容,也可以像这样由固定字符串和时间戳决定,同时兼顾了校验的功能salt = md(str(random.random()).encode(), b'')[4:12]  # 随机生成盐,8位,其他位数也是可以的,影响不是很大st = md(password.encode(), salt)  # 第一次md5keys = md(st + password.encode(), salt)  # 第一次md5的结果加上原始key再进行一次md5key = st + keys  # 两次加密结果衔接作为32位的加密keyiv = md(keys + password.encode(), salt)  # 将得到的key再和原始key相加进行一次md5,作为偏移量ivencda = enc(key, iv, xdata)  # 使用加密key和iv进行加密result = base64.b64encode(b'Salted__' + salt + encda).decode()  # 返回结果带上salted和盐,进行base加密return resultdef saltdec(xdata,ts):#加盐加密password = 'xxxxxxxxxxxxxxxxxxx:' + ts#加密的原始keys=base64.b64decode(xdata)#base64解密data=s[16:]#数据从第17位开始salt=s[8:16]#这里是盐的位置st=md(password.encode(),salt)#第一次md5keys=md(st+password.encode(),salt)#第一次md5的结果加上原始key再进行一次md5key=st+keys # 32位的加密key由两次加密结果衔接得到iv=md(keys+password.encode(),salt)#将得到的key再和原始key相加进行一次md5,得到偏移量ivresult=dec(key,iv,data)# 使用加密key和iv进行解密return resultdef test():#测试函数unenc_data='i am laowei'#原始数据timestamp = str(int(time.time() * 1000))#13位时间戳enc_data=saltenc(unenc_data,timestamp)#加密print(enc_data)#打印加密后数据dec_data=saltdec(enc_data,timestamp)#解密加密数据print(dec_data)#打印解密数据test()

ps:知道了算法,很多东西就可以不拘泥于形式,比如说md5时盐的位置,原始key的选择,原始key换为加密key的方式,也可以不局限于md5,sha256也是不错的选择,甚至是几种hash方式配合使用

老魏的公众号,会发布一些个人爬虫的案例和经验,欢迎大家一起来交流

python aes 加盐 加密解密相关推荐

  1. Python项目-Day26-数据加密-hash加盐加密-token-jwt

    Python项目-Day26-数据加密-hash加盐加密-token-jwt 数据加密 import hashlibpwd='a123456' #sha1的参数必须是二进制 temp=hashlib. ...

  2. angular和JAVA实现aes、rsa加密解密,前后端交互,前端加解密和后端JAVA加解密实现

    今天实现了下AES和RSA加密解密,主要的功能是对前后端交互数据进行加密解密,为什么要用到两个算法呢,首先RSA默认的话加密长度是有限的100多个byte吧大约,并且需要公钥私钥,而AES加密没有限制 ...

  3. md5加密,md5加盐加密和解密

    package com.java.test;import java.security.MessageDigest; import java.security.SecureRandom; import ...

  4. java md5加盐与解密_md5加密,md5加盐加密和解密

    packagecom.java.test;importjava.security.MessageDigest;importjava.security.SecureRandom;importjava.u ...

  5. python aes padding_python笔记43-加解密AES/CBC/pkcs7padding

    前言 有些公司对接口的安全要求比较高,传参数的时候,不会明文的传输,先对接口加密,返回的数据也加密返回. 目前比较常见的加密方式是AES/CBC/pkcs7padding. AES五种加密模式 在AE ...

  6. MD5加盐加密工具类(可直接使用)

    MD5加盐加密工具类 在我们做项目时,涉及到用户密码,而正常来说数据库中不会直接存储明文的密码,都是加密之后的密码. 密码加密的方式有很多,比如: ① 3DES.AES.DES:使用对称加密算法,可以 ...

  7. 可以考的python方面的证书-python有证书的加密解密实现方法

    本文实例讲述了python有证书的加密解密实现方法.分享给大家供大家参考.具体实现方法如下: 最近在做python的加解密工作,同时加完密的串能在php上能解出来,网上也找了一些靠谱的资料,刚好也有时 ...

  8. Vue前端和Java后端 联调使用AES 前后端加密解密

    Vue前端和Java后端 联调使用AES 前后端加密解密 最近在项目中需要针对重要数据进行加密传输,在网上找了一大推加密方式 最终采用AES 加密 Java端 package com.zk.web.u ...

  9. 基于java注册登录MD5算法加盐加密颁发 Token身份令牌使用各种邮箱发送验证码详解雪花算法

    目的作用 == 在项目中,为了防止别人窥视我们的密码通常我们会采取一些加密方式.这里简单介绍一下MD5 加盐加密方法,MD5叫做信息-摘要算法,严格来说不是加密方式,而是信息摘要. 对于可以接触到数据 ...

最新文章

  1. Pytorch-基于Transformer的情感分类
  2. 『数据库』数据库系统效率Max--数据库并发控制
  3. 锅巴H264播放器地址和说明
  4. 数据结构前缀,后缀,中缀表达式
  5. 分布式6大核心专题_分布式Session
  6. toj 4315 一二三
  7. 【bzoj1704】[Usaco2007 Mar]Face The Right Way 自动转身机 贪心
  8. java 正则表达式 分组(group)
  9. python中的and_我想问下python中 逻辑与:“”和“and”的区别
  10. matlab2c使用c++实现matlab函数系列教程-exppdf函数
  11. 错过了粽子不要紧,只是不要错过Ta!
  12. 在lua的string库和正则表达式
  13. 微信weui框架页面html,样式库 WeUI for Work
  14. 最新Keil MDK 5.37下载
  15. Css实现雷达扫描动画效果
  16. 透明图片怎么发给别人_新手微商没生意咋办?微商怎么做如何推广?不放弃微信就是等死!...
  17. Opengl ES之矩阵变换
  18. 如何注册微信个人公众号,教程来啦!怎样注册微信个人公众订阅号
  19. php微信支付na,PHP公众号支付宝支付实现
  20. ant design pro v2 - 权限控制

热门文章

  1. jmeter连接mysql数据库并传递参数
  2. LOL英雄联盟赏金术士蛮王单挑1V5
  3. 测试人员如何做不漏测?这7点就够~
  4. Kubuntu安装教程
  5. Javascript内存泄漏与优化
  6. 财政部:2018年全国财政收入超18万亿元 同比增6.2%
  7. 新品上市调查方案(2)-测试结果
  8. .NET处理CSV文件 插件CSVReader
  9. 学术写作之逻辑推理(Logical Reasoning)
  10. embed预览pdf_网页上预览pdf文件的几种方案