| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2461 人关注过本帖
标题:文件加密
只看楼主 加入收藏
石碣
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-6-23
结帖率:50%
收藏
 问题点数:0 回复次数:9 
文件加密
#include <stdio.h>
#define IN "in.txt"
#define OUT "out.txt"
#define KEY 0xaaaa//宏定义
void scrambler(const char *in, const char *out, unsigned char key)
{
    FILE *i, *o;//定义指向FILE类型的指针变量
    int c;
   
    i = fopen(in, "rb");
    o = fopen(out, "wb");//打开文件,因为假定可读写,所以对是否成功不做判断
    while((c = fgetc(i))!=EOF)//读入字符直到文件结尾
    {
        c^=key;//执行异或加密或解密
        fputc(c,o);//写入文件
    }
   
    fclose(i);
    fclose(o);
}
int main()
{
    scrambler(IN,OUT,KEY);
    return 0;
}
一直运行不了程序,求大佬指点
搜索更多相关主题的帖子: 文件 加密 define OUT KEY 
2019-06-24 17:27
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:396
专家分:2640
注 册:2018-3-30
收藏
得分:0 
把函数参数 key 改为 int

saber,别哭.
2019-06-24 18:37
石碣
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-6-23
收藏
得分:0 
不合适,这个题是    文件加密程序:将待加密文件以二进制打开,读入32个字节,分别与口令异或,在将4、5、6三个字分别与0xaaaa异或,即完成加密,执行第二次就解密。
但这不明白“将待加密文件以二进制打开,读入32个字节”
求指点
2019-06-24 23:58
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
你说的一直运行不了程序指的是什么呢

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2019-06-25 11:07
石碣
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-6-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

运行程序出来这个
麻烦大佬指点
2019-06-25 11:41
石碣
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-6-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

运行程序出来这个
麻烦大佬指点
2019-06-25 11:41
石碣
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-6-23
收藏
得分:0 
挺急的,求大佬帮忙看看
2019-06-25 11:58
顾长庚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:3
专家分:20
注 册:2019-6-24
收藏
得分:0 
#include <stdio.h>
#define KEY 0xaaaa//宏定义
void scrambler(const char *in, const char *out, unsigned char key)
{
    FILE *i, *o;//定义指向FILE类型的指针变量
    int c;
   
    i = fopen(in, "rb");
    o = fopen(out, "wb");//打开文件,因为假定可读写,所以对是否成功不做判断
    while((c = fgetc(i))!=EOF)//读入字符直到文件结尾
    {
        c^=key;//执行异或加密或解密
        fputc(c,o);//写入文件
    }
   
    fclose(i);
    fclose(o);
}
int main()
{
    char *strpath = "D:\\1.txt";
    char *pathstr = "D:\\2.txt";
    scrambler(strpath,pathstr,KEY);
    return 0;
}
在D盘中新建一个文件1.txt,随便写点东西保存。你的报错应该是读出的流为空导致的
2019-06-25 21:20
顾长庚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:3
专家分:20
注 册:2019-6-24
收藏
得分:0 
回复 7楼 石碣
你可以试着把宏定义中地址独立出来,读出来文件流为空,是不是你给的地址就有问题,本来就不存在in.txt这个文件,所以才导致stream != null
2019-06-25 21:25
石碣
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-6-23
收藏
得分:0 
如何操作,求指点。
2019-06-25 23:04
快速回复:文件加密
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018646 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved