| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 266 人关注过本帖
标题:求大佬帮助,编写一个简单的文件加密与解密
只看楼主 收藏
rightar
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-10
结帖率:0
  已结贴   问题点数:20  回复次数:5   
求大佬帮助,编写一个简单的文件加密与解密
附件: 您没有浏览附件的权限,请 登录注册
2018-01-10 22:10
Jonny0201
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:192
专家分:707
注 册:2016-11-7
  得分:7 
给你个基本思路,具体的实现方法有很多,不知道你有什么需求
1. 二进制打开文件,一个一个字节读入
2. 对于读入的数据进行相应的处理
3. 处理之后用二进制打开新的文件,一个一个字节写入
解密也是相同的步骤
你可以尝试读一下实现 Huffman 编码的代码,既做到了加密,也做到了压缩
2018-01-10 22:16
rightar
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-10
  得分:0 
回复 2楼 Jonny0201
我是初学者,还是不懂。。。。
2018-01-11 08:01
爱编程的书生
Rank: 2
等 级:论坛游民
威 望:1
帖 子:6
专家分:23
注 册:2018-1-10
  得分:7 
程序代码:

#include <stdio.h>
#include <stdlib.h>

#define KEY 0x11
 
/*
简单的可以使用异或加密,根据异或的特点
0^1=1,1^1=0,0^0=0

  A^B=S;   第一次加密S为加密后的字符
  S^B=A^B^B=A^0=A  第二次加密可见得到原来的数据
   
B则相当于密匙,即本程序的KEY
*/

//对单个字符加密
char encryptChar(char c){
    c=c^KEY;
    return c;
}

//加密解密函数,调用一次加密,调用两次解密
char* encryptString(char *c){
    char *p=c;
    while(*p!='\0'){
        *p=encryptChar(*p);
         p++;
    }
    return c;
}

int main(){
   
    char temp[128];
    puts("请输入要加密的字符串:");
    gets(temp);
   
    encryptString(temp);    //加密
    puts("加密后的字符串为:");   
    puts(temp);
   
    encryptString(temp);    //解密
    puts("解密后的字符串为:");   
    puts(temp);
   
    return 0;
}



在相应的字符串添加文件的输入输出操作就行了

[此贴子已经被作者于2018-1-11 15:30编辑过]

2018-01-11 15:29
rightar
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-10
  得分:0 
回复 4楼 爱编程的书生
哇...感谢感谢,谢谢大佬
2018-01-12 08:14
九转星河
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:长长久久
等 级:版主
威 望:36
帖 子:4485
专家分:12678
注 册:2016-10-22
  得分:7 
据说还有哈希加密(不过哈希加密往往没有唯一解),还有压缩也是一种加密,当然其它可以搜搜密码学方面的~

[code]/*~个性签名:我[爱][你]==你[爱[我]]; 就是这样~ 2018-04-02更~*/[/code]
2018-01-12 11:44







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

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