关于数字水印,大家可以先看下相关的文章:数字水印
开篇有话说,其实这个数字水印,可以简单的理解,就是一个唯一身份ID,且不会造成文件的损坏(如果有损坏肯定是写的有问题),主要用途用于版权、完整性、防复制或去向追踪的技术——来自百度百科。
看完后,只能说,两个字,“牛逼“,尽管说我已经不是第一次看到这种类似的文章了,但是一但看到打心里眼就是佩服了,毕竟这个东西,都是需要用到算法的,刚开始我还不明白,感觉就是把对应的区域填充成水印(肉眼看不出来的),不就好了。
随后我又细看了下,人家还能做到填充完文件的大小这样不变,你说牛不牛逼啊。反正我写的简陋的水印代码,是要改变文件大小的,所以大家我很菜,但是我还是要写,因为写出来那是我的东西,哈哈。
最早一些了解到这个数字水印的概念应该算是图种或者也叫图片隐写术,明明是张图片,但是更改下后缀就是个压缩包了,是不是挺神奇,我记得当时还出过一个安全漏洞,就是因为这个问题,因为大多数网站都是不让上传除了图片格式之外的文件,所以可以通过该方法绕过该漏洞。
当然了,现在这个漏洞在大型网站都不用想了,看看微信就知道,明明发过去的事5M的文件,可能经过微信的压缩变1M都是有可能的,这中间的过程就是把这些无关,有害的信息给干掉了。
不过嘛,还是要说下,怎么知道这个图种,算是给自己留个备份,知识储备,毕竟也是因为这些的事情才想起,原来之前就有接触过“数字水印”,只是当时并没有做笔记的习惯,方法如下:
window系统下,直接在dos界面使用copy命令即可。
//相关链接:https://jingyan.baidu.com/article/3065b3b6a7768fbecff8a49d.html //命令解释:copy /b 第一个文件的路径+第二个文件的路径 生成新的文件路径,例子如下: copy /b 1.jpg+2.rar 3.jpg
前面一些废话都说完了,最后我要说的是,我也在WordPress下实现了上传文件的时候在文件的末尾加入了本站唯一标识哦,给大家分享下具体代码吧,如果要使用的话,可以直接放置到自己主题下面的function.php
文件里面的?>
之前,即可。
//自动给上传的文件末端添加隐藏的信息 add_filter('wp_handle_upload_prefilter', 'add_file_eof_info_upload_filter'); function add_file_eof_info_upload_filter($file) { $addInfo = get_option('siteurl');//默认添加的内容是自己站点的网址 file_put_contents($file['tmp_name'], $addInfo, FILE_APPEND | LOCK_EX); return $file; }
具体效果如下;
关于在文件默认追加隐藏的信息,到底会给文件变成多大的呢?我会在这篇《分享关于在前端如何使用JavaScript正确计算输入的文字字节数》文章详细的说明。
看完关于字节的文章,想必大家应该也知道了,其实正常情况下写入的隐藏的信息都不会超过1Kb的,那么对于文件大小的影响几乎是可以忽略不计的。