PC版的微信将用户接收到的所有图片加密为DAT文件并保存在本地,具体保存位置就看各自的微信-文件管理设置了。
DAT格式文件不能直接打开,强行查看也就只能看到一些乱码。如果能够找到解密的方式,就可以很方便在本地筛选图片了,虽然大部分可能只是聊天吹水的内容。
加密方式
首先我尝试一下在微信中发送一张新图片(如果是转发图片,并不会有新的文件记录。换句话说,微信去重了),然后在微信加密存储目录中找到新增的记录,可以看到这两个文件的文件大小是一模一样的。
微信需要处理用户接收到的所有图片,加密方式势必不能是特别复杂并且是可逆的。如果用AES、DES等加密算法,这么多群开起车来你扛的住,CPU也扛不住啊~
公布答案,其实是”异或加密“,对每位字节使用同一个值进行异或计算得到加密文件。
解密原理
现在我们只需要知道“密钥”就可以对文件进行解密还原了。至于为啥,可以参考下异或运算的”自反法则 ( )“。
假设 a 为原文,b为密钥,c为密文,则有 c = a ⊕ b。
则 c ⊕ a = a ⊕ b ⊕ a = b
所以我们只需要知道一个图片原本的字节,就能计算”密钥“了。
总所周知(好吧,我也是刚查了才知道),JPEG文件的开始2个字节都是,这是JPEG协议规定的SOI文件头。
通过程序读取加密文件的前两个字节为,分别和进行异或计算,可以得到结果都为,就是加密的密钥了。
11 ⊕ FF = EE
36 ⊕ D8 = EE
以此类推格式也就可以通过相同方法计算出密钥。
图片标识字节
- jpg FF D8
- png 89 50
- gif 47 49
代码实现
最后解密就只需要对加密文件的每个字节用”密钥“进行异或计算就好了,自己去尝试吧
PS:不同图片的后缀名别忘了处理
到此这篇密码加密怎么解密微信(微信加密怎样解密)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-wfwjg/53667.html