目录

前言

分析过程

①查看情况,可以看见字体是加密过的

②查看网页源代码

③解码

④保存成woff文件

⑤查看woff文件

⑥使用TTFont模块将之前的woff文件保存成xml文件

⑦查看xml文件信息

⑦找到规律或者是联系

⑧构造映射关系

⑨获取html网页信息,将加密内容一一替换

具体实现细节

①bese64解码

②使用TTFont保存成xml文件

③获取每个字体的unicode编码

④获取四个坐标

尾声


前言

这篇文章主要是讲解简单的字体解密,由于信息敏感,就不透露是哪个网站了,不然过不了审


分析过程

①查看情况,可以看见字体是加密过的

②查看网页源代码

如果在网页中看的了这样一些内容,那么就需要注意,这个信息我们后面可能需要用到,我用红色框框框住的是一些比较重要的信息,绿色箭头指向的是我们所需要使用的内容,结尾不需要)

③解码

因为是base64编码的,那么我们需要对应的解码,对谁解码呢,绿色箭头所指向的那部分内容。

④保存成woff文件

就是正常的二进制格式保存,怎么保存图片的就怎么保存它,只不过后缀名要改成.woff。你放心,PyCharm应该看不了woff文件

⑤查看woff文件

PyCharm看不了woff文件,我们只能想办法,使用FontCreator软件查看或者是使用百度字体编辑器(FontEditor (kekee000.github.io))都可以

查看出来的效果可能是这样的

需要格外注意一下下面的uniE016这样的信息,后面要用到。

⑥使用TTFont模块将之前的woff文件保存成xml文件

没有的先安装

pip install fontTools

⑦查看xml文件信息

这部分信息与之前woff文件的底部信息是一一对应的,简单理解就是这个字符编码对应着这个字。但事情远没有那么简单,不出意外的话,这些unicode其实是动态的,简单来说就是你在来一次,这些字所对应的编码就会随之改变,但依然是一一对应的。

举个例子,这次1对应的unicode编码是uniE016,下一次执行1对应的unicode编码是uniE018。你想要靠识别unicode编码来识别字体是不太可能的。

⑦找到规律或者是联系

它们之间肯定是有联系的,不然网站自己怎么使用,一般来讲,构成桥梁的都是静态内容。

我爬取的这个网站的规则是这样的

这四个坐标值是关键,不管unicode编码怎么变,下面的xy值怎们变,这四个坐标值永远不变,这就是桥梁!

⑧构造映射关系

①首先获取每个字体的unicode编码,我们需要这些编码去获取对应的坐标

②构建坐标与字的映射关系

我使用了比较笨的方法,就是手动的构建字典

例如

data_map = {(0, -255, 1996, 1537): '下',(0, -303, 2022, 1581): '硕',(0, -259, 2020, 1691): '张',
}

③构建unicode编码与字的映射关系,以坐标为桥梁

例如这样的,因为我要爬取的网页源码上显示的加密内容有所不同,它将uni替换成了&#x还在最后加了;号,要示情况而定

映射关系有了,其实就差不多了

⑨获取html网页信息,将加密内容一一替换


具体实现细节

①bese64解码

import base64# 解码
decryptContent = base64.b64decode('加密内容')

②使用TTFont保存成xml文件

from fontTools.ttLib import TTFont# 保存成xml文件
fonts = TTFont('字体库.woff')
fontLibraryXML_path = '字体库.xml'
fonts.saveXML(fontLibraryXML_path)

③获取每个字体的unicode编码

# 使用内存读写,更方便
tf = TTFont(BytesIO(decryptContent))
# 获取按字母顺序排序的字形名称列表。
print(tf.getGlyphNames())

打印出来的结果是类似这样的

④获取四个坐标

coordinate = fonts['glyf'][uniE016].xMin, fonts['glyf'][uniE016].yMin, fonts['glyf'][uniE016].xMax, fonts['glyf'][uniE016].yMax

最后一一替换就好了

应该差不多,其他的应该没有太大的问题了


尾声

如果这篇文章对您有所帮助,那么这篇文章就有意义!


感谢您的观看!

python 简单字体解密相关推荐

  1. 复习Java第一个项目学生信息管理系统 04(权限管理和动态挂菜单功能) python简单爬数据实例Java面试题三次握手和四次挥手生活【记录一个咸鱼大学生三个月的奋进生活】016

    记录一个咸鱼大学生三个月的奋进生活016 复习Java(学生信息管理系统04权限管理和动态挂菜单功能) 改写MainFrame的构造方法 新增LoginFrame的验证登录是否成功的代码 新增Logi ...

  2. Python爬虫JS解密详解,学会直接破解80%的网站(一)!!!

    文章目录 1.网页查看 2.有道翻译简单实现源码 3.JS解密(详解) 4.python实现JS解密后的完整代码 4.1.实现效果 5.JS解密后完整代码升级版 5.1.实现效果 CSDN独家福利降临 ...

  3. 58同城的字体解密(一)

    在爬虫的时候,经常会遇到一些反爬机制,但在反爬中字体加密属于比较难解决的一部分.今天介绍一个比较简单的解密方法. 1.首先找到加密的字体,打开58的一个链接:https://zz.58.com/pin ...

  4. python rsa加密解密_RSA加密解密(python版)

    RSA的算法涉及三个参数,n.e.d. 其中,n是两个大质数p.q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度. e1和d是一对相关的值,e可以任意取,但要求e与(p-1)*(q-1)互质: ...

  5. python pycrypto 加密解密

    原文链接: python pycrypto 加密解密 上一篇: 面试链表问题 汇总 下一篇: sympy 解决常见高数问题 参考 http://www.cnblogs.com/huxianglin/p ...

  6. 大众点评最新字体解密19年7月

    有网友说我之前写的 大众点评字体解密 的方法已经失效了,所以更新一篇解密 2019年7月25日. 查看加密 看到都是小框框,为了一探究竟我们查看源码找到加密处 所有文字都是  > 这样的怪符 ...

  7. notepad 怎么写python_notepad怎么设置python的字体颜色

    notepad怎么设置python的字体颜色,记事本,文本,编辑器,文件,字体 notepad怎么设置python的字体颜色 易采站长站,站长之家为您整理了notepad怎么设置python的字体颜色 ...

  8. Python实现数据加密-解密

    Python实现数据加密-解密 运行环境: OS:macOS Monterey Version 12.3.1(英文版) IDE:PyCharm 2020.1 1 . PyCryptodome库安装 ​ ...

  9. python中年大叔学编程_中年大叔学编程-Python简单操作文件

    原标题:中年大叔学编程-Python简单操作文件 在计算机中,经常打交道的就是各种文档,用得比较多的软件就是office和记事本来操作文件,那么我们试试用Python来简单读写文件. Open函数的用 ...

  10. python 加密和解密

    python 加密和解密 安装 linux pip3 install pycryptodome windows pip install pycryptodomex 创建密钥 from Cryptodo ...

最新文章

  1. 中美专利对比:2015年中国上升 美国首降
  2. 冒泡排序出现的问题_停课不停学 | 有趣的算法——冒泡排序
  3. 压缩维度oj P1173+P1174+P1164
  4. 研究38位知名CEO的邮件后,我们有这9个发现
  5. 职场社交是一个真需求吗?
  6. linux 编译java并打包
  7. P1305 新二叉树
  8. 容器化单页面应用中Nginx反向代理与Kubernetes部署
  9. c++将字符串转换成 int 类型
  10. 前端学习(1714):前端系列javascript之项目配置
  11. 图片查看器 bmp jpg png 动态gif office 2007风格
  12. 笨办法学 Python · 续 练习 10:`sort`
  13. Linux基础_合并,归档,压缩,dump,编辑器
  14. python菜鸟教程python基础教程
  15. 一个有情怀的PPT模板下载网站
  16. redis-----简单介绍---基本的配置---持久化----学习笔记
  17. Fabric 1.0源代码分析(39) policy(背书策略)
  18. Unity Android 真机调试 + 夜神模拟器调试 + ADB Logcat
  19. linux改-文件夹名称,linux修改文件夹名字
  20. C - Serval and Parenthesis Sequence

热门文章

  1. Vue3.x的安装和初始化
  2. 全国计算机缴费时间江苏,2018年3月江苏全国计算机等级考试报名时间
  3. 移动端网站设计需要注意的四要点
  4. 一文掌握差模信号、共模信号、共模抑制比的概念
  5. 3-23 实对称矩阵知识补充
  6. 认识电信产品生命周期管理PLM及其PLM服务
  7. 使用visual studio2015 社区版开发office
  8. Linux用户层和内核文件读写
  9. 第22批符合道路运输车辆卫星定位系统标准 及规范的车载终端
  10. 资源吧网站模板下载织梦cms精仿资源吧网站模板