找回密码
 立即注册
注册 登录
×
热搜: 活动 交友 discuz
查看: 134|回复: 18

对任何格式的文件实现加密与解密软件

[复制链接]

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-11-27 09:46:14 | 显示全部楼层 |阅读模式
写在前面:
//////////////////////////////////**************/////////////////////////////////////////
花了2天时间做了几个实现对文件的加密与解密的exe程序。


PS:除了将要说明的那个exe:
1.还做了一个在CMD命令行窗口对文件加密的玩意儿:



2.还做了一个直接对一段文字进行加密的玩意儿。


3.还做了一个将exe文件放在文件夹中,能够对整个文件夹下所有文件进行加密的程序。


不过这一个还不是很完善,加密之后得手动删除原来的文件,因为不是对原文件进行改写,而是新建了一份。
//////////////////////////////////**************/////////////////////////////////////////

环境:win10 VS2010 C/C++
目录:
1.原理
2.程序
3.测试视频
4.加密软件免费提取链接
5.欢迎交流
6.求赞


/**************************/
1.原理
加密的方式有很多,无非就是改变原来文件的信息。
1.可以向文件里写入字节(密码);
2.可以将文件里的信息进行某种运算(密码);
3...

2.程序部分
2.1 密码获取
//获得密码的函数
__int64 CEcfileDlg::epass()
{
        DWORD plen;
        char *ppass;
        __int64 mc= 8757735233305;
        UpdateData(TRUE);

        ppass = m_pass.GetBuffer(0);

        plen = strlen(ppass);

        for(int i=0; i<(int)plen; i++)
        {
                mc ^= ppass|128;
        }
        return mc;
}2.2 加密部分
//给文件加密的函数
BOOL CEcfileDlg::ecfile(LPCTSTR fpath)
{
        char *data;
        CFile *file;
        DWORD flen;
        m_password = epass();

        file = new CFile;
        if ( !file->Open(fpath, CFile::shareDenyNone|CFile::modeReadWrite))
        {
                return FALSE;
        }

        flen = (DWORD)file->GetLength();
        data = new char[(int)flen];

        file->SeekToBegin();
        file->Read(data, flen);

        for(int i=0; i<(int)flen; i++)
        {
                data ^= m_password;
                data ^= flen;
        }

        file->SeekToBegin();
        file->Write(data, flen);
        delete[] data;

        //添加密码验证信息
        char cpass[5] = "love";
        for(int j=0; j<5; j++)
        {
                cpass[j] ^= m_password;
        }
        file->SeekToEnd();
        file->Write(&cpass, 5);
        file->Close();
        delete file;
        return TRUE;
}2.3 解密部分
//给文件解密的函数
BOOL CEcfileDlg::dcfile(LPCTSTR fpath)
{
        char *data;
        CFile *file;
        DWORD flen;
        char love[5];

        file = new CFile;
        if( !file->Open(fpath, CFile::shareDenyNone|CFile::modeReadWrite))
        {
                return FALSE;
        }

        flen = (DWORD)file->GetLength();
        data = new char[(int)flen];

        //检验密码是不是正确
        file->Seek(-5, CFile::end);
        file->Read(&love, 5);

        m_password = epass();

        for(int i=0; i<5; i++)
        {
                love ^= m_password;
        }

        if(strcmp(love, "love")!=0)
        {
                return FALSE;
        }

        //解密
        file->SeekToBegin();
        file->Read(data, flen);

        for(int j=0; j<(int)flen; j++)
        {
                data[j] ^= m_password;
                data[j] ^= (flen-5);
        }
        file->SeekToBegin();
        file->Write(data, flen);
        file->SetLength(flen-5);
        file->Close();

        delete[] data;
        delete file;
        return TRUE;
}3.测试视频
为了试一下是不是能多各种格式的文件进行加密解密,录了两个视频。
选了视频(MP4)、图片(JPG)、文本(TXT)、压缩包(ZIP)四种格式。
3.1 文件加密测试视频

文件加密测试视频
https://www.zhihu.com/video/1135597361526001664
3.2 文件解密测试视频
本来就是上面那个视频测试的,但是因为里面的声音问题吧,没审核通过,换一个视频录一下。


解密测试:


Decryption test
https://www.zhihu.com/video/1135619216156753920
测试成功!!!!!!!!!!!

4.加密软件免费提取链接
我把直接能运行的exe上传到了云盘,可以直接提取使用。
我自己做的,不用联网啥的,没有任何风险。
提取链接:
复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1fUc5f1Cti1Nx_vBk3OGL3g 提取码:zscd

5.欢迎交流
运行软件时,右键可以按到联系方式。
6.求赞

例行求赞(╥╯^╰╥)嘤嘤嘤

回复

使用道具 举报

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-11-27 09:46:32 | 显示全部楼层
xor加密太容易被破解了,更何况是单byte作为key的。大部分非文本文件头部都有固定值,利用这点可以算出key。或者简单粗暴遍历0~255作为key尝试解密,肯定有一个是对的。
回复

使用道具 举报

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-11-27 09:46:45 | 显示全部楼层
这就是个做着好玩儿的,连密码学的边的摸不到
[哈哈]
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-11-27 09:46:58 | 显示全部楼层
方便发一下那个ofdm的代码吗?
回复

使用道具 举报

1

主题

4

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-11-27 09:47:24 | 显示全部楼层
hhh那一个有时候看漏了,你留个邮箱明天给你
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-11-27 09:48:20 | 显示全部楼层
哇,你终于看到我了小哥哥!!
lyp_kk0823@163.com
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-11-27 09:48:44 | 显示全部楼层
可以了
回复

使用道具 举报

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-11-27 09:48:49 | 显示全部楼层
谢谢你![小情绪][小情绪][小情绪][小情绪]
回复

使用道具 举报

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-11-27 09:49:09 | 显示全部楼层
TXT文件也可以吗
回复

使用道具 举报

1

主题

4

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-11-27 09:49:25 | 显示全部楼层
求源码
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋| 黑客通

GMT+8, 2025-10-16 03:25 , Processed in 0.209692 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2020, LianLian.

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