怎么给c语言程序加个个密码,C语言对文件加上密码

博主刚刚学完C语言的基础语法知识

一直想写一些自己的程序

而博主又是一个很懒的人

特别是对于记忆的东西很懒

我平时都把重要的东西放在一个txt文档里面

于是我便想对我的那个文件进行加密码

没错就是加密码而不是加密,我开始对这个概念也是很模糊

想法:

1:首先我的想法是这样的,我想把东西都保存在一个txt文档里,然后和我用C语言写的控制台程序放在一起,每次当我要看那个文档的时候就要运行那个程序去输入密码才能看见,不然直接是打不开的。

2:然后我就去写代码,写到一半我就写不下去了,然后就百度,发现百度不到有对保护这个概念的东西,都是对内容进行加密,而没有涉及到在不改原文档的情况下去进行保护。

3:但我依旧不死心,然后我走了一些弯路,就想把内容先用二进制录进去再写上密码,我当时是认为二进制文件没办法直接打开查看应该就算安全了。不过我还是发现了一些问题。

4:我发现我对文件的理解有误,文件只是磁盘的一堆数据而已,就算写入的是二进制,但依旧可以用一些工具读出来,只是人为定制的编码不同而已,在磁盘中都一样,于是我觉得这个写不下去了。

5:最后我还是想加上密码,我才突然想起可以写成word文档进行加密码或者用压缩包加密码。

总结:

虽然这个过程很无脑,但我还是收获了许多

1:我对文件的理解更深入了一些

2:我学会了去获取整个文件的长度及对其内容的读写

FILE* fp;

int len;

char* p;

fp = fopen("txt", "r"); // txt文件名

fseek(fp, 0L, SEEK_END); // 定位到文件末尾

len = ftell(fp); // 得到文件大小

p = (char *)malloc(len + 1); // 根据文件大小动态分配内存空间

if (p == NULL)

{

fclose(fp);

return 0;

}

fseek(fp, 0L, SEEK_SET); // 定位到文件开头

fread(p, len, 1, fp); // 一次性读取全部文件内容

p[len] = '\0'; // 字符串结束标志

需要注意的是对在C语言中输出的是ANSI编码格式的

而且函数ftell()是有一定的使用范围的:该函数对大于231-1文件,即:2.1G以上的文件操作时可能出错。

3:我发现我对整体目标的把握并不够,并没有很好的了解很多东西,导致花费了很多时间

但我还是有许多的不懂,也许这篇博客操之过急,我还是想知道为什么那些加密软件能为文件上锁,是的用户不输入密码无法打开文件比如说word对文件的加密和压缩包的加密,我会更加的了解然后继续学习

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值