请教一下各位大神:CFile把数据写入到TXT之后,如何用代码对该TXT文件写入保护,防止被修该?灰常感谢~

墨家教徒 2014-12-22 12:03:50
各位大神,您好! 请教一下,我用CFile创建了一个TXT的文件,里面存储了程序需要的多个同类型的结构体,可是这些信息都是保存在TXT文件中,是可以直接被修改的(直接找到该TXT文件,然后打开文件,就可以修改里面的内容了),但是我不想被别人修改,请问在代码中有什么办法可以实现吗灰常感谢大家~~
...全文
373 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
墨家教徒 2014-12-23
  • 打赏
  • 举报
回复
引用 6 楼 jacksonfan 的回复:
直接把内容加密呗
谢谢您啦~~~
墨家教徒 2014-12-23
  • 打赏
  • 举报
回复
引用 12 楼 wxhxj0268 的回复:
真的要不让别人看见就加密内容吧,想不让写只有改属性,但别人也可以再改。
灰常谢谢您~~~
墨家教徒 2014-12-23
  • 打赏
  • 举报
回复
引用 10 楼 cjqpker 的回复:
[quote=引用 9 楼 u010508719 的回复:] [quote=引用 3 楼 cjqpker 的回复:] 如果仅仅是不让人看懂里边的内容,以防恶意修改,那你存文件不要存文本格式,随便处理一下
谢谢您~~ 虽然改了后缀,但是还是能被右键删除,这是楼楼不希望看到的~~ 请问下可不可以指点一下:如何使文件不能被别人删除~ 灰常感谢大神~~[/quote]
引用 4 楼 CharlesSimonyi 的回复:
方法一: 改后缀,不要保存为txt,可防止用户无意修改 方法二:对内容进行加密,这样用户打开了就一堆乱码,也不知道要怎么改。 方法三:你的程序一直以禁止其他进程写的形式打开着这个文件,要求程序一直保持运行状态并且开机自动启动,可以写成windows服务的形式。 方法四:写文件系统过滤驱动程序,效果类似于360的保护,想改动该文件直接提示无权限。
四楼说好,方法三就可以。不过略麻烦。 我倒有个歪招,把文件隐藏掉,直接给个 h 属性(隐藏),简单粗暴。除非用户显示所有文件,然后进行修改。如果是那样,不花大力气是没法彻底解决的[/quote] 啊~~灰常感谢~~~
假正经的班长 2014-12-22
  • 打赏
  • 举报
回复
如果仅仅是不让人看懂里边的内容,以防恶意修改,那你存文件不要存文本格式,随便处理一下
假正经的班长 2014-12-22
  • 打赏
  • 举报
回复
引用 1 楼 wxhxj0268 的回复:
文件保存完成后调用API函数 SetFileAttributes(),修改文件的属性为只读。
设置只读属性也是容易被去掉的。 Windows有个注册事件,可以监控文件的改动,如果你的文件真的非常敏感,决不能被改变,你可以隐秘备份一下,然后注册侦听文件变动的事件,适时恢复。 还有类似360对自身文件以及进程的保护,你操作时直接报无权限,估计是深入很底层了,楼主感兴趣可以调研一下
笨笨仔 2014-12-22
  • 打赏
  • 举报
回复
文件保存完成后调用API函数 SetFileAttributes(),修改文件的属性为只读。
笨笨仔 2014-12-22
  • 打赏
  • 举报
回复
真的要不让别人看见就加密内容吧,想不让写只有改属性,但别人也可以再改。
lis2012 2014-12-22
  • 打赏
  • 举报
回复
用序列化操作封装成二进制
假正经的班长 2014-12-22
  • 打赏
  • 举报
回复
引用 9 楼 u010508719 的回复:
[quote=引用 3 楼 cjqpker 的回复:] 如果仅仅是不让人看懂里边的内容,以防恶意修改,那你存文件不要存文本格式,随便处理一下
谢谢您~~ 虽然改了后缀,但是还是能被右键删除,这是楼楼不希望看到的~~ 请问下可不可以指点一下:如何使文件不能被别人删除~ 灰常感谢大神~~[/quote]
引用 4 楼 CharlesSimonyi 的回复:
方法一: 改后缀,不要保存为txt,可防止用户无意修改 方法二:对内容进行加密,这样用户打开了就一堆乱码,也不知道要怎么改。 方法三:你的程序一直以禁止其他进程写的形式打开着这个文件,要求程序一直保持运行状态并且开机自动启动,可以写成windows服务的形式。 方法四:写文件系统过滤驱动程序,效果类似于360的保护,想改动该文件直接提示无权限。
四楼说好,方法三就可以。不过略麻烦。 我倒有个歪招,把文件隐藏掉,直接给个 h 属性(隐藏),简单粗暴。除非用户显示所有文件,然后进行修改。如果是那样,不花大力气是没法彻底解决的
墨家教徒 2014-12-22
  • 打赏
  • 举报
回复
引用 3 楼 cjqpker 的回复:
如果仅仅是不让人看懂里边的内容,以防恶意修改,那你存文件不要存文本格式,随便处理一下
谢谢您~~ 虽然改了后缀,但是还是能被右键删除,这是楼楼不希望看到的~~ 请问下可不可以指点一下:如何使文件不能被别人删除~ 灰常感谢大神~~
墨家教徒 2014-12-22
  • 打赏
  • 举报
回复
引用 2 楼 cjqpker 的回复:
[quote=引用 1 楼 wxhxj0268 的回复:] 文件保存完成后调用API函数 SetFileAttributes(),修改文件的属性为只读。
设置只读属性也是容易被去掉的。 Windows有个注册事件,可以监控文件的改动,如果你的文件真的非常敏感,决不能被改变,你可以隐秘备份一下,然后注册侦听文件变动的事件,适时恢复。 还有类似360对自身文件以及进程的保护,你操作时直接报无权限,估计是深入很底层了,楼主感兴趣可以调研一下[/quote] 这位大神讲的是解决本质问题的方案,真的灰常感谢~~ 请问下如何设置成其他人的操作无权限,灰常感谢~ 我还是先去查询一下资料先~ 谢谢您~~
墨家教徒 2014-12-22
  • 打赏
  • 举报
回复
引用 1 楼 wxhxj0268 的回复:
文件保存完成后调用API函数 SetFileAttributes(),修改文件的属性为只读。
灰常感谢,楼楼用的是CFile::SetStatus设置的只读,但还是稍微有点问题(还是能被看到TXT的文件内容),目前准备改后缀~ 谢谢您~~
jacksonfan 2014-12-22
  • 打赏
  • 举报
回复
直接把内容加密呗
hushoubo 2014-12-22
  • 打赏
  • 举报
回复
楼上的各位都说得好,楼主最后采用哪一个呢
encoderlee 2014-12-22
  • 打赏
  • 举报
回复
方法一: 改后缀,不要保存为txt,可防止用户无意修改 方法二:对内容进行加密,这样用户打开了就一堆乱码,也不知道要怎么改。 方法三:你的程序一直以禁止其他进程写的形式打开着这个文件,要求程序一直保持运行状态并且开机自动启动,可以写成windows服务的形式。 方法四:写文件系统过滤驱动程序,效果类似于360的保护,想改动该文件直接提示无权限。

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧