123下一页
返回列表 发新帖

【C/Java编程】加解密文件

[复制链接]

103

主题

4218

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
582
好评
36
信誉
102

MT论坛帅哥2019-5.1节快乐MT论坛最佳新人考神MT论坛新人

发表于 2023-7-14 09:54:53 来自手机  | 显示全部楼层 | 阅读模式  来自 上海
本帖最后由 焱妃 于 2023-7-14 22:17 编辑

想必大家最开始接触的编程语言就是C语言了吧,自己无聊写的一个加解密编程(异或),可以用来加密一些文件,异或两次就等于解密,我这里是与0x66做的异或运算(Java是与0x24做异或),本来有其他方法,但是加密后文件变大了很多,解密完后文件大小还是变不回去,所以用这个最基本也是最简单的。下面是图示
  1. //c语言
  2. #include<stdio.h>
  3. int main()
  4. {
  5.     int r;
  6.     char d;
  7.     char c[64]={0};
  8.     char c1[64]={0};
  9.     printf("输入文件路径\n");
  10.     scanf("%s",c);
  11.     printf("输出文件路径\n");
  12.     scanf("%s",c1);
  13.     FILE* srcfile=fopen(c,"rb");
  14.     FILE* dstfile=fopen(c1,"wb");
  15.     printf("开始加解密\n%s\n",c);
  16.     while(1)
  17.     {
  18.         r=fread(&d,1,1,srcfile);
  19.         if(r==1)
  20.         {
  21.             d=d^0x66;
  22.             fwrite(&d,1,1,dstfile);
  23.         }
  24.         else
  25.         {
  26.             break;
  27.         }
  28.     }
  29.     fclose(srcfile);
  30.     fclose(dstfile);
  31.     printf("加解密完成");
  32.     return 0;
  33. }
复制代码

  1. //Java语言
  2. import java.util.*;
  3. import java.io.*;

  4. public class Main
  5. {
  6.         public static void main(String[] args) throws IOException
  7.         {
  8.                 int key;
  9.                 final long size;
  10.                 System.out.println("输入目标文件");
  11.                 Scanner sc = new Scanner(System.in);
  12.         File file = new File(sc.next());
  13.                 System.out.println("输出目标文件");
  14.         final File file1 = new File(sc.next());
  15.                 System.out.println("输入密钥");
  16.                 key = sc.nextInt();
  17.         InputStream inputStream = new FileInputStream(file);
  18.                 size=file.length();
  19.         FileOutputStream fileOutputStream = new FileOutputStream(file1);
  20.                 BufferedOutputStream out = new BufferedOutputStream(fileOutputStream);
  21.         byte[] b = new byte[8192];
  22.                 int r;
  23.                 new Thread(new Runnable(){
  24.                                 public void run(){
  25.                                         while(true){
  26.                                                 long size1 = file1.length();
  27.                                                 if(size==size1){
  28.                                                         System.out.println("当前加密进度:100%");
  29.                                                         System.out.println("所有任务完成");
  30.                                                         break;
  31.                                                 }
  32.                                                 else
  33.                                                 {
  34.                                                         System.out.println("当前加密进度:"+String.valueOf((size1*100/size)+"%"));
  35.                                                 }               
  36.                                                 try
  37.                                                 {
  38.                                                         Thread.sleep(300);
  39.                                                 }
  40.                                                 catch (InterruptedException e)
  41.                                                 {}
  42.                                         }
  43.                                        
  44.                                 }
  45.                         }).start();
  46.         while((r=inputStream.read(b))!=-1){
  47.                         for(int i=0;i<r;i++){
  48.                                 out.write(b[i]^key);
  49.                         }
  50.         }
  51.                 out.flush();
  52.         fileOutputStream.close();
  53.         inputStream.close();
  54.                 out.close();
  55.                
  56.         }
  57. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有1人评分好评 金币 理由
LoveDoLove + 1 + 1

查看全部评分 总评分:好评 +1  金币 +1 

回复

使用道具 举报

103

主题

4218

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
582
好评
36
信誉
102

MT论坛帅哥2019-5.1节快乐MT论坛最佳新人考神MT论坛新人

发表于 2023-7-14 09:57:37 来自手机  | 显示全部楼层  来自 上海
C4droid的编译器是GCC
回复

使用道具 举报

2

主题

589

回帖

1244

积分

高中生

Rank: 4

金币
90
好评
1
信誉
99
发表于 2023-7-14 10:07:18 来自手机  | 显示全部楼层  来自 湖北
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

22

主题

6592

回帖

2万

积分

博士后

超级至尊VIP

Rank: 8Rank: 8

金币
6092
好评
6
信誉
99

考神MT论坛新人MT论坛帅哥MT论坛最佳新人MT论坛活跃会员挂机大佬

发表于 2023-7-14 10:08:28 来自手机  | 显示全部楼层  来自 甘肃–临夏
支持大佬
回复

使用道具 举报

1

主题

290

回帖

1117

积分

高中生

Rank: 4

金币
104
好评
1
信誉
100
发表于 2023-7-14 10:11:26 | 显示全部楼层  来自 湖北
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

19

主题

3703

回帖

8924

积分

硕士生

Rank: 6Rank: 6

金币
1377
好评
0
信誉
100

MT论坛新人MT论坛最佳新人MT论坛帅哥考神

发表于 2023-7-14 10:17:02 来自手机  | 显示全部楼层  来自 湖北
谢谢分享
回复

使用道具 举报

28

主题

904

回帖

5077

积分

硕士生

Rank: 6Rank: 6

金币
3879
好评
76
信誉
170
发表于 2023-7-14 10:51:07 来自手机  | 显示全部楼层  来自 贵州
大佬牛逼
回复

使用道具 举报

19

主题

6212

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
2130
好评
0
信誉
100
发表于 2023-7-14 11:35:50 来自手机  | 显示全部楼层  来自 安徽
感谢大佬分享
回复

使用道具 举报

39

主题

349

回帖

1676

积分

高中生

Rank: 4

金币
643
好评
11
信誉
125

考神MT论坛新人MT论坛最佳新人

发表于 2023-7-14 11:43:25 | 显示全部楼层  来自 江苏
支持一下
回复

使用道具 举报

3

主题

2391

回帖

5763

积分

硕士生

Rank: 6Rank: 6

金币
5025
好评
0
信誉
99
发表于 2023-7-14 11:45:36 来自手机  | 显示全部楼层  来自 江西
感谢分享
回复

使用道具 举报

64

主题

8939

回帖

2万

积分

博士后

学渣

Rank: 8Rank: 8

金币
3159
好评
54
信誉
133

MT论坛最佳新人考神MT论坛活跃会员

发表于 2023-7-14 11:55:49 来自手机  | 显示全部楼层  来自 江苏
支持一下
回复

使用道具 举报

0

主题

3328

回帖

8016

积分

硕士生

Rank: 6Rank: 6

金币
1353
好评
0
信誉
100

考神

发表于 2023-7-14 12:01:00 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

40

主题

2236

回帖

8794

积分

硕士生

Rank: 6Rank: 6

金币
4434
好评
7
信誉
100

考神MT论坛新人MT论坛帅哥MT论坛活跃会员

QQ
发表于 2023-7-14 13:33:18 来自手机  | 显示全部楼层  来自 河北
感谢分享
回复

使用道具 举报

16

主题

801

回帖

4958

积分

大学生

Rank: 5Rank: 5

金币
1953
好评
11
信誉
103

MT论坛新人考神

发表于 2023-7-14 13:39:46 来自手机  | 显示全部楼层  来自 广西
异或加密好像代码量大了会运行速度降下来之前在lua那会异或加密后卡卡的,不知道这里是不是也会将速
回复

使用道具 举报

103

主题

4218

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
582
好评
36
信誉
102

MT论坛帅哥2019-5.1节快乐MT论坛最佳新人考神MT论坛新人

发表于 2023-7-14 13:44:16 来自手机  | 显示全部楼层  来自 上海
彔忈 发表于 2023-7-14 13:39
异或加密好像代码量大了会运行速度降下来之前在lua那会异或加密后卡卡的,不知道这里是不是也会将速[ ...

我试了500MB的安装包,大约13s左右
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表