概述
前言
无聊的时候看到闪照就想着能不能将闪照保存下来,出于好奇去研究了一番,将大概原理摸清楚了,发出来大家互相学习探讨一下。以下文章只探讨技术和原理。
原理
8.8.x版本的和之前版本大致相同,都是将文件闪照文件存储在客户端,在查看了五秒后自动销毁。根据网上教程,我将闪照技术分为三个版本。
版本一
早期是不会将文件销毁的,直接在图片的缓存文件夹中可以找到,然后将闪照文件的后缀名改为jpg、png等就可以查看,但是根据本人实践,现在缓存文件夹中并不会有闪照的图片,所以网上小部分的教程基本失效。
版本二
目前网上的大部分教程都是针对版本二的。这次不去缓存文件夹中找了,在点击闪照的时候会将闪照文件下载到存放闪照的文件夹中。值得注意的是,只能点开闪照,不能查看,因为此版本的已经会销毁闪照文件了,但是你不长按查看就没事。然后去找到对应的闪照文件,与版本一做法一样,改后缀名即可查看。根据本人实现,直接改后缀得到的图片是一张什么都没有的空白图。
版本三
目前在网上没发现有此版本的教程,为了测试,我将版本降级到8.3.x版本也不能使用版本二的方法,版本太低无法登录,可能会存在某个版本能登录又能使用版本二方法的版本吧,我也懒得试。
保存原理
根据版本二方法得到闪照文件,此时的文件是经过特殊处理的图片,可以看作是加密,在长按查看时会它会将文件解密,此时我们只要将闪照文件获取改后缀名即可。(如果有大佬能反编译找到加密的算法,当我在放屁)
技术探讨
没有源码,我大胆的猜一下目前闪照的做法应该是这样的。下载闪照文件,用户触发长按事件对文件进行解密,然后将文件显示给用户。当然这只是文件处理方面,至于那些防录屏截屏的做法我也不知道。
至于闪照为什么始终不是图片格式的文件可能是它有自己的处理算法,处理此格式会比常规图片快?
还有为什么它不将文件直接读取再解密然后显示,这样不是更能保护闪照不被用户获取吗?
以上只是个人猜想和疑惑,望路过的大佬解答。
结语
本来还想分享一下思路的,但是说多了审核过不了,有兴趣的可以评论区或者私信探讨。
至于闪照文件夹的路径网上都有,自行百度。
最后
以上就是背后墨镜为你收集整理的解决QQ闪照不能保存问题前言原理技术探讨结语的全部内容,希望文章能够帮你解决解决QQ闪照不能保存问题前言原理技术探讨结语所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复