当前位置: 首页 > news >正文

python 图片解密:base64

引言

小编在在一些批量下载图片的爬虫程序的过程中,发现了一种被base64加密的图片,今天一个京东案例带大家彻底掌握base64加密破解,建议大家先看视频再去研究代码,思路才是最重要的。

base64加密解密

1、介绍:base64是一种经常使用的加密方式,在一些项目中一些图片数据就是通过base64加密传输的,base64是一种防君子不防小人的加密方式,生产的编码可逆生成的编码都是ascii编码,python有一个专门的内置模块来实现base64算法,就是base64模块;
2、优点:速度快,ascii编码人眼不可理解;
3、编码非常长,且极易被破解,仅用于加密非关键信息;

base64模块用法

import base64image = '需要base64加密的图片数据'
# base64加密图片数据
image_base64 = base64.b64encode(image)
# 解密base64加密的图片
image_ = base64.b64decode(image_base64 )

案例一:下载京东登录验证码图片

辅助视频:

京东滑块图片和缺口图片XPATH定位分析

我们借助WEB自动化测试工具selenium来完成案例一,我们来开发测试用例,代码如下:
如果对selenium的使用不是很会的小伙伴,可以去看我们另外几篇基于selenium的爬虫博客,链接如下:
1、python selenium爬虫入门案例day01:中国图片库
2、python selenium爬虫入门案例day02:珠宝匠
3、python selenium爬虫入门案例:day03:Foodiesfeed

# coding:utf-8
import random
import base64
from selenium import webdriver
from selenium.webdriver.common.by import By# 京东网址
url = "https://www.jd.com/"
# 打开浏览器
driver = webdriver.Chrome()
# 显示休眠
driver.implicitly_wait(random.randint(3, 8))
# 访问京东官网
driver.get(url)
# 浏览器窗口最大化
driver.maximize_window()
# 定位超链接使用LINK_TEXT
driver.find_element(By.LINK_TEXT, '你好,请登录').click()
driver.find_element(By.LINK_TEXT, '账户登录').click()
# 定位输入框使用XPATH
driver.find_element(By.XPATH, '//*[@id="loginname"]').send_keys("13437246893")
driver.find_element(By.XPATH, '//*[@id="nloginpwd"]').send_keys("123456789lhz.")
driver.find_element(By.LINK_TEXT, '登    录').click()slider_ = driver.find_element(By.XPATH,'//*[@id="JDJRV-wrap-loginsubmit"]/div/div/div/div[1]/div[2]/div[2]/img')
verification_ = driver.find_element(By.XPATH,'//*[@id="JDJRV-wrap-loginsubmit"]/div/div/div/div[1]/div[2]/div[1]/img')
# get_attribute("获取标签属性值")
# 将data:image/png;base64,替换掉的原因是,这部分是图片头部,不是图片内容
# image指图片,png指图片格式,base64指加密算法,后面剩余部分才是加密后的图片数据
slider_base64 = slider_.get_attribute("src").replace("data:image/png;base64,", "")
# 将被base64加密过的图片解密
slider = base64.b64decode(slider_base64)
# 保存滑块图片
with open(file="slider.png", mode="wb") as f1:f1.write(slider)
# get_attribute("获取标签属性值")
verification_base64 = verification_.get_attribute("src").replace("data:image/png;base64,", "")
# 将被base64加密过的图片解密
verification = base64.b64decode(verification_base64)
# 保存缺口验证码图片
with open(file="verification.jpg", mode="wb") as f2:f2.write(verification)

视频讲解中,测试写出来的定位滑块和缺口图片的XPATH代码

这个xpath用法的原理就是:定位src属性值包含指定字符串的img标签
//img[contains(@src, 'CCZx8=')]
//img[contains(@src, 'ggllk')]

希望在此学习小伙伴能在评论区,留下自己的学习总结,让CSDN一起见证大家的进步

http://www.dtcms.com/a/614423.html

相关文章:

  • springmvc请求参数
  • 第四章 防火墙设备管理
  • LLM之Agent(三十)|使用 LangGraph 构建可用于生产环境的智能聊天机器人:完整工程指南
  • 网站收录作用wordpress表格线
  • 成都网站设计师福鼎手机网站建设
  • ESP32模组选型速览
  • 模板网站的缺点重庆专业网站推广流程
  • 什么网站可以查建设用地规划许可证二维码图片制作
  • [Mac] Unclutter 2.2.15 Mac上的文件暂存 智能剪贴板历史记录管理器工具
  • 东莞企业网站seo如何申请域名网站注册
  • 微信网页制作网站建设一建建设网站
  • 网络营销推广方式有哪些seo建站
  • 【算法】逻辑回归
  • Android开发-java版:Framgent
  • 网站设计行业背景稳稳在哪个网站做的消防直播
  • 四川建设银行手机银行下载官方网站下载苏州微网站建设
  • 【HarmonyOS】ArkTS的多线程并发(下)——线程间通信对象的传递
  • 平价网站平价网站建设建设钓鱼网站查询系统
  • 毕业做网站运营好吗亚马逊网站开发的技术
  • 电子商务网站建设与管理课后第四章广州市安全教育平台登录入口
  • LeetCode算法日记 - Day 103: 不同的子序列
  • 怎么建立自己网站 asp个人怎么做网站排名优化
  • 20251109 树状DP总结
  • C语言编译器出现Bug | 如何解决C语言编译器常见问题
  • 做淘宝客网站php青岛网站推广企业
  • 第九篇 扫雷游戏 上(末版·精简)
  • ⚡️2025-11-15GitHub日榜Top5|热点智能推送工具
  • python做项目的网站国家标准下载网免费
  • 网站建设服务费属于基于asp网站开发 论文
  • 高斯数据库 (GaussDB) 使用指南