新手求助,EAS加密文件

「已注销」 2017-12-03 06:22:26

#include "AES.h"
#include "stdafx.h"
#include <string>
#include <windows.h>
#include <iostream>
#include <fstream>

#define PVFKEY "DD1DF9FB1895F9139D36571012092B70" //KEY,必须32位长度,不要有特殊字符

using namespace std;

int CopyFile(char *SourceFile,char *NewFile)
{
ifstream in;
ofstream out;
in.open(SourceFile,ios::binary);//打开源文件
if(in.fail())//打开源文件失败
{
cout<<"Error 1: Fail to open the source file."<<endl;
in.close();
out.close();
return 0;
}
out.open(NewFile,ios::binary);//创建目标文件
if(out.fail())//创建文件失败
{
cout<<"Error 2: Fail to create the new file."<<endl;
out.close();
in.close();
return 0;
}
else//加密文件
{
//AES aes;
//aes.setMode((unsigned char*)(PVFKEY), 32, 16, true);
//aes.invCipher((unsigned char*)out, (unsigned char*)out);



out<<in.rdbuf();
out.close();
in.close();
return 1;
}

}
void main()
{

char curPath[MAX_PATH];
char a[MAX_PATH]="\\Script.pvf";
char b[MAX_PATH];
char c[MAX_PATH]="\\Script_Encryption.pvf";
char d[MAX_PATH];


GetModuleFileNameA(NULL,curPath,MAX_PATH);
string tmp=curPath;
tmp=tmp.substr(0,tmp.find_last_of('\\'));


strcpy(b,tmp.c_str()); //把串a复制到有足够空间的c中
strcat(b,a); //当前文件目录

strcpy(d,tmp.c_str()); //把串a复制到有足够空间的c中
strcat(d,c); //加密后的文件路径

//cout<<b<<endl;
//cout<<d<<endl;



if(CopyFile(b,d))
{
cout<<"加密成功..."<<endl;
}
else
{
cout<<"加密失败..."<<endl;
}
}




红字部分错误,数据类型搞不懂。。
有人可以教我怎么改吗?谢谢。


...全文
86 1 点赞 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
漫天飞花 2017-12-05
这是AES的加密啊,标题写错了 函数原型是这样的: int setMode(unsigned char* key, int keySize, int inSize, bool isdecrypt); void cipher (const unsigned char* input, unsigned char* output); void invCipher(const unsigned char* input, unsigned char* output); 看起来没有错误啊 你先把范例跑一边看对不对,然后对着改你的。
#include "aes.h"
#include <stdio.h>

void main()
{
    char*  str = "0123456789abcdef";   //被加密的数据16字节
    char*  pwd = "1111111111111111";   //密码16字节
    char   out[17];   //输出缓存

    out[16]='/0';

    AES aes;

    /*加密时*/
    aes.setMode(pwd, 16, 16, FALSE);
    aes.cipher(str, out);

    printf(out); //输出加密数据
    printf("/n");
    /*解密时*/
    aes.setMode(pwd, 16, 16, TRUE);
    aes.invCipher(out, out);

    printf(out);
}
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2017-12-03 06:22
社区公告
暂无公告