如题。对一个文件内部写入一个字符串信息,并且写入后,无法再次写入,不可更改。或者让更改难度难度很大,就像破解反编译 c++一样
不会影响到文件的使用,切换了操作系统也不会发生改变。至少能包含大多数文件格式,文本文件,图片,文档文件等,能被程序读取写入的信息。专业性质的文件不包括在内。
如何做到?用什么工具?或者什么编程开发语言能做到
![]() | 1 mingl0280 2020-06-07 16:45:09 +08:00 via Android 签名 |
![]() | 2 LnTrx 2020-06-07 16:45:57 +08:00 PDF+数字签名? |
![]() | 3 retanoj 2020-06-07 16:46:30 +08:00 via iPhone 如果对“文件”所在环境没有限制,那好像是无解的 |
![]() | 5 hello2060 2020-06-07 16:53:02 +08:00 文件就是一堆二进制数据,不可能无法编辑的。也就是说数据肯定可以被破坏。那你打开的时候必须判断文件是否有效,无效肯定就不打开了,所以不存在不影响使用的问题。 |
7 nguoidiqua 2020-06-07 16:58:27 +08:00 ![]() 你想想别人大费周章搞区块链、搞共识算法到底是为什么? 因为没有这样的技术。 |
9 nightwitch 2020-06-07 17:09:37 +08:00 GPG 对文件进行签名, 在其他系统上验签后提取文件。 |
![]() | 10 reus 2020-06-07 17:13:50 +08:00 做不到 |
![]() | 11 neteroster 2020-06-07 17:24:52 +08:00 via Android 「对一个文件内部写入一个字符串信息,并且写入后,无法再次写入,不可更改。」做不到。 能做到的是用类似 GPG 的软件签名,确保数据被更改后能被发现。 |
12 systemcall 2020-06-07 17:30:32 +08:00 感觉不行 如果是做 DRM 的话,倒是可以考虑数字水印。别的东西就不太清楚了。 如果是公司里面用,有很多保密系统可以考虑。可以控制硬件的情况下,也有很多方法,发现破解了就 ban 机 |
![]() | 13 jugelizi 2020-06-07 17:32:57 +08:00 说下你的原始需求 感觉你的想法已经偏离了 |
![]() | 14 Leon6868 2020-06-07 17:36:27 +08:00 如果对于文本文档,这个问题好像无解,因为文档在可视层面是可以直接复制的 只能增加发现和修改水印的难度(比如无宽字符) 视频的话,还可以用一下水印,不过也只能增加破解难度 |
![]() | 15 CNife 2020-06-07 17:44:18 +08:00 ![]() 你要的是类似水印的功能,一般只能针对特定用途、特定数据类型专门定制,很难搞一个通用的。 比如,图片的水印就是图片携带的,很难更改(除非用专门的去水印算法和工具),不影响图片的使用(人在看图片时可以「手动」忽略水印,只关注图片本身)。 我有一个学长,硕士毕业论文做的地图水印,同样需要针对地图,提取地物的特征来制作水印,再嵌入到地图里,做到既不被普通用户发现,又能抵抗简化、旋转、放缩等去水印攻击。当然,具体的算法我也不懂,只是简单说一说水印功能的复杂性。 像纯文本这样的文件就很难搞水印,因为所有数据都直接暴露给了用户,用户不需要任何额外工具就能看到文件每一个比特,改动任何一个字节的数据都能被用户发现。 从信息的角度看,水印一定会改变原文件的信息量,扭曲原文件的信息,像视频、图片这样冗余信息量大、用户无法直接看到每一个字节的数据就容易做水印,但很难有一个通用的数据水印。 |
![]() | 16 dream7758522 2020-06-07 17:45:04 +08:00 via Android 这不就是给文件加签名吗?无法再次写入,不可更改。 |
![]() | 17 xiangyuecn 2020-06-07 17:52:06 +08:00 加上这个:“对一个文件内部写入一个字符串信息” 限制,无解。 去掉这个:“对一个文件内部写入一个字符串信息” 限制,n 个解。 简单点的计算文件 hash,一个文件写入后无法再次写入==不可更改,更改难度奇大( md5 碰撞倒是有例子,sha1 文件不知道有没有例子),涵盖所有类型文件,任意主流操作系统兼容 |
![]() | 18 imn1 2020-06-07 17:56:54 +08:00 “不能被轻易修改”,符合这条基本都是鉴权加密 其他写入但不影响使用就很容易 |
![]() | 19 tctc4869 OP @xiangyuecn md5 sha1 与这个无关。我的是把文件内塞入签名信息。 |
![]() | 20 tctc4869 OP @CNife 好吧,如果缩小范围,只考虑图片文件,视频文件,pdf 文件,epub,音频文件,只考虑这些的话,那有软件能做么?我是说塞入字符串去,然后又能被读出来,有相关软件么? |
![]() | 21 youla 2020-06-07 18:24:26 +08:00 写一个 exe 程序,把你的图片视频 pdf 装进去。 |
22 liuser666 2020-06-07 18:53:15 +08:00 via iPhone 在线查看,远程给文档,图片,pdf 你把文件放 csn 里。 |
23 liuser666 2020-06-07 18:53:57 +08:00 via iPhone cdn |
![]() | 24 dream10201 2020-06-07 19:18:19 +08:00 洗洗睡不香? |
![]() | 25 Mac 2020-06-07 19:19:58 +08:00 via Android 当年软盘时代有写保护口 |
26 aloxaf 2020-06-07 19:44:46 +08:00 你需要的大概是数字盲水印 |
27 Jooooooooo 2020-06-07 19:50:39 +08:00 做不到 楼上好多答案说的都是怎么发现被改的 你想想, 文件就是本地磁盘上的数据, 有管理员权限之后还有啥不能改? |
![]() | 28 acess 2020-06-07 19:59:42 +08:00 @CNife 很多年前听说过有些小说网站会替换一些不太重要的字词来嵌入水印,这样就可以在小说泄露(盗版)后追踪到泄露出去的用户。 |
![]() | 29 pusheax 2020-06-07 20:01:10 +08:00 这种多媒体数据的话可以考虑隐写,也不是完全不能更改,但是很难以发现 |
![]() | 30 LengthMin 2020-06-07 20:02:48 +08:00 楼主是想做一个泄露查询吗? 给某个文件加上一个独特的密钥 泄露之后就可以知道是谁泄露的 |
32 llh880808 2020-06-07 20:33:25 +08:00 有人记得图种吗,利用操作系统根据文件头判断文件类型的机制,把信息夹带在文件尾,也不影响正常浏览,如果信息量很小,在文件大小上也看不出来 问题是一旦知道这种方法,当然还是可以编辑夹带的信息 |
![]() | 35 tctc4869 OP @pusheax 这种有相关软件么?自己把一些信息进行对称加密,然后把加密的字符串信息塞入多媒体文件,pdf 文件里。这样用户就难以发现, |
![]() | 36 beastk 2020-06-07 21:47:15 +08:00 via iPhone 哪有永远的事,你想多了 |
![]() | 37 niubee1 2020-06-07 21:47:15 +08:00 你说的不是 EXIF 信息 ? |
![]() | 38 BadAngel 2020-06-07 21:48:17 +08:00 突然想到,如果可以这么做,放入病毒也是可以的咯? 而且还是全平台? 这个有点离谱了。 |
![]() | 39 xcstream 2020-06-07 21:49:41 +08:00 其实就是水印 随便找个软件就可以了 |
![]() | 40 la9998372 2020-06-07 21:57:00 +08:00 图片、PDF 文件上,可以加数字水印。而且这种数字水印可以在截图、翻拍等情况下,也可以实现恢复。https://www.jianshu.com/p/08041bcf0f23 |
![]() | 41 la9998372 2020-06-07 22:01:28 +08:00 ![]() 可以看看这个实际使用案例 https://www.amobbs.com/thread-5732994-1-1.html |
42 fensou 2020-06-07 22:06:46 +08:00 via iPhone 搞安全的都知道这手艺 |
![]() | 43 catror 2020-06-07 22:08:04 +08:00 via Android 你要求塞入文件的话,没有通用的方法,不同格式有不同的文件结构。 |
![]() | 44 feelapi 2020-06-07 22:08:34 +08:00 猜测一下,又是那个领导拍脑袋想的需求吧。 |
45 aa6563679 2020-06-07 22:11:52 +08:00 via iPhone 文件往后面追加数据是不会影响使用的 |
![]() | 46 webshe11 2020-06-07 22:57:41 +08:00 ![]() 楼主没有提存储介质,给一个方法: 光盘 |
47 mumbler 2020-06-07 23:09:05 +08:00 via Android EXE 文件啊,有个资源区,可以把内容写进去,要改的话很麻烦 |
![]() | 48 yujiang 2020-06-08 00:02:57 +08:00 via Android 想起了 fb 在用户上传的图片里加数据用来追踪。。。 |
![]() | 49 helloworld000 2020-06-08 02:51:47 +08:00 区块链啊 |
![]() | 50 yufeng0681 2020-06-08 08:52:13 +08:00 肉眼不可见的水印技术, 主要是打上标记,看看是谁在传播,泄密 机密文件 |
![]() | 51 p1gd0g 2020-06-08 09:13:16 +08:00 数字水印,密码学有这个方向。 |
![]() | 52 BadAngel 2020-06-08 09:34:11 +08:00 1 、你需要把有效内容包裹起来,使用特定格式,只有特定应用才能打开,但需要对全平台都开发应用,而且破解这种事情只要有心总能够做到。 2 、把问题分开看,对不同类型的文件使用不同的隐形加密技术。 图片类:在某个范围内,加入隐形水印信息,类似起点防盗版。 视频类:在视频里某一帧加入校验图,类似拳击俱乐部里的丁丁。 文档类:PDF 用的数字签名,前面有人提到过了。 |
![]() | 53 hugedata 2020-06-08 09:57:23 +08:00 数字水印,不很多公司内部系统包括 web 页面、通知公告等都加了数字水印了么,防止盗摄、截屏等,只要网上泄露内部资料,立马就能追踪到是谁泄露的。 |
![]() | 54 mostkia 2020-06-08 10:22:17 +08:00 用你自己开发的压缩算法,吧文件打包成一个 exe 或任意一种可执行文件。内置打开的程序,不向系统输出内部的资源文件。 |
![]() | 55 hws8033856 2020-06-08 10:38:42 +08:00 LZ 你需要的是抗攻击的水印,不同媒体有不同的算法,没有通用的 |
![]() | 56 msg7086 2020-06-08 11:15:04 +08:00 没什么是不能改的。你是电脑的拥有者,你对电脑内的所有东西都有最高权限。 最简单的,一锤子下去,文件是不是被改变了?不仅能被改变,还能被销毁被鞭尸。 |
57 hejw19970413 2020-06-08 11:35:03 +08:00 我试过往一张图片中加入自己的字符(在最后面的尾部),在图片展示上其实是没有什么影响的。其实就像一个木马图片一样 |
58 bibsbx 2020-06-08 11:51:12 +08:00 如果可以都压缩成.zip 的话,可以试试 File comment |
![]() | 59 iszengmh 2020-06-08 11:55:43 +08:00 via Android 不太可能吧,要是这样的话,为什么下载强调验证文件完整性 |
![]() | 60 yolee 2020-06-08 14:01:26 +08:00 只要是数据就能更改,无法更改的文件是不存在的。唯一的方案是:自定义文件格式,用自己专有的软件才能解码,还可以加入云端验证。 |
61 hikari2 2020-06-08 14:48:15 +08:00 在源代码添加注释吧,做一个简单.exe 或者.apk 程序,然后反编译,找到注释的位置。 |
62 wmhx 2020-06-08 14:55:04 +08:00 电子签名法,CFCA 了解下。 |
![]() | 63 newmlp 2020-06-08 17:17:54 +08:00 不可能 |
64 aqqwiyth 2020-06-08 17:23:57 +08:00 |
![]() | 65 lululau 2020-06-08 18:22:25 +08:00 咋就不可能,自己开发个操作系统呗 |
66 annielong 2020-06-08 18:32:33 +08:00 exe 文件倒是可以先效验,可以判断文件是否被修改过,图片,视频等本身是无法判断的, |
67 magicfuzzx 2020-06-10 11:24:25 +08:00 说了这么多,你们觉得怎么给 txt 加一个签名,纯文本哦 |