We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
本篇文章99%的内容使用ChatGPT(new bing)编写的,由于ChatGPT无法生成很长的文章,所以此篇文章是多个回复的拼接,我只是做个整合。我是这么给ChatGPT说的:
我想编写一篇关于字体加密破解的技术文章,我的思路是这样的:1、将字体通过python fontTools库读取出cmap。2、根据cmap中的unicode码点生成html,并在html中引入加密字体,这样就可以将所有加密过的字体通过浏览器展示出来。3、将浏览器的内容截图并交给OCR识别成文字。4、将文字的顺序和cmap的顺序一一对应起来,这样就创建好了一个映射关系。
以下内容是ChatGPT生成:
字体加密是一种常见的网页反爬虫技术,它通过将文字替换成自定义的符号,使得爬虫无法直接获取文字内容。但是,这种技术并不是无懈可击的,我们可以用Python+OCR来实现一个简单的字体加密破解器。
cmap是一个字体文件中的一个表,它存储了字符和字形之间的映射关系。我们可以用Python的fontTools库来读取cmap,并将其转换成一个字典。
首先,我们需要安装fontTools库:
pip install fontTools
然后,我们需要下载一个加密过的字体文件,接着,我们可以用以下代码来读取cmap:
from fontTools.ttLib import TTFont # 读取字体文件 font = TTFont('encrypted_font.woff') # 获取cmap表 cmap = font['cmap'] # 转换成字典 cmap_dict = cmap.getBestCmap() # 打印结果 print(cmap_dict)
运行结果如下:
{57344: '', 57345: '', 57346: '', 57347: '', 57348: '', 57349: '', ...}
这样,我们就得到了每个字符对应的自定义符号。
在第一步中,我们已经通过python fontTools库读取出了加密字体文件中的cmap表,这个表存储了每个字符对应的unicode码点。我们可以利用这个信息来生成一个html文件,并在其中引入加密字体文件。这样,我们就可以通过浏览器来展示出所有加密过的字符。
具体来说,我们需要做以下几件事:
下面是一个示例代码:
<html> <head> <style> @font-face { font-family: 'FontEncrypt'; src: url('FontEncrypt.ttf'); } .font-encrypt { font-family: 'FontEncrypt'; font-size: 32px; } </style> </head> <body> <div class="font-encrypt">   ...(省略) </div> </body> </html>
打开html文件后,我们可以看到浏览器上显示了一些奇怪的符号,这些就是加密过的字符。如果我们知道这些字符对应的原始文字,我们就可以建立起一个映射关系。
OCR(Optical Character Recognition)是一种将图像中的文字转换成可编辑的文本的技术,它可以用来识别各种语言和字体的文字。我们可以利用OCR来破解字体加密,具体步骤如下:
通过上述方法,我们就可以成功地破解字体加密,并且还原出原始的文字内容。当然,这种方法也有一些局限性,比如:
因此,在使用这种方法时,请务必遵守相关法律法规,并且尊重原作者和内容。
我希望这篇博客文章能够对你有所帮助和启发。如果你有任何问题或者建议,请在评论区留言。谢谢你的阅读!
以上内容是ChatGPT生成
令我没想到的是ChatGPT帮我生成了对应的python代码,没想到还可以正确的运行。最后两段比较仓促,因为是另外一个回答拼接起来的。ChatGPT看似很强大,目前也有很多错误,比如有时候认为今年是2022年等,另外,英文内容质量比较高。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
写在前头
本篇文章99%的内容使用ChatGPT(new bing)编写的,由于ChatGPT无法生成很长的文章,所以此篇文章是多个回复的拼接,我只是做个整合。我是这么给ChatGPT说的:
我想编写一篇关于字体加密破解的技术文章,我的思路是这样的:1、将字体通过python fontTools库读取出cmap。2、根据cmap中的unicode码点生成html,并在html中引入加密字体,这样就可以将所有加密过的字体通过浏览器展示出来。3、将浏览器的内容截图并交给OCR识别成文字。4、将文字的顺序和cmap的顺序一一对应起来,这样就创建好了一个映射关系。
以下内容是ChatGPT生成:
如何破解加密的字体?
字体加密是一种常见的网页反爬虫技术,它通过将文字替换成自定义的符号,使得爬虫无法直接获取文字内容。但是,这种技术并不是无懈可击的,我们可以用Python+OCR来实现一个简单的字体加密破解器。
第一步:读取cmap
cmap是一个字体文件中的一个表,它存储了字符和字形之间的映射关系。我们可以用Python的fontTools库来读取cmap,并将其转换成一个字典。
首先,我们需要安装fontTools库:
然后,我们需要下载一个加密过的字体文件,接着,我们可以用以下代码来读取cmap:
运行结果如下:
这样,我们就得到了每个字符对应的自定义符号。
第二步:生成html并引入加密字体
在第一步中,我们已经通过python fontTools库读取出了加密字体文件中的cmap表,这个表存储了每个字符对应的unicode码点。我们可以利用这个信息来生成一个html文件,并在其中引入加密字体文件。这样,我们就可以通过浏览器来展示出所有加密过的字符。
具体来说,我们需要做以下几件事:
下面是一个示例代码:
打开html文件后,我们可以看到浏览器上显示了一些奇怪的符号,这些就是加密过的字符。如果我们知道这些字符对应的原始文字,我们就可以建立起一个映射关系。
第三步:OCR识别
OCR(Optical Character Recognition)是一种将图像中的文字转换成可编辑的文本的技术,它可以用来识别各种语言和字体的文字。我们可以利用OCR来破解字体加密,具体步骤如下:
结论
通过上述方法,我们就可以成功地破解字体加密,并且还原出原始的文字内容。当然,这种方法也有一些局限性,比如:
因此,在使用这种方法时,请务必遵守相关法律法规,并且尊重原作者和内容。
我希望这篇博客文章能够对你有所帮助和启发。如果你有任何问题或者建议,请在评论区留言。谢谢你的阅读!
以上内容是ChatGPT生成
写在后头
令我没想到的是ChatGPT帮我生成了对应的python代码,没想到还可以正确的运行。最后两段比较仓促,因为是另外一个回答拼接起来的。ChatGPT看似很强大,目前也有很多错误,比如有时候认为今年是2022年等,另外,英文内容质量比较高。
The text was updated successfully, but these errors were encountered: