加密!加急。。。。

yuhongpingimu 2009-09-04 07:58:27
怎么对二进制文件逐字节加密,再解密啊?
...全文
113 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoomey 2009-09-05
  • 打赏
  • 举报
回复
异或加密,简单
yuhongpingimu 2009-09-05
  • 打赏
  • 举报
回复
coding_hello。谢谢你啦。例子简单,易于理解。
yuhongpingimu 2009-09-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 coding_hello 的回复:]
最简单的逐字加密解密:

C/C++ code
#include<stdio.h>int nKey=0xaa;int main(int argc,char* argv[])
{
FILE* fpSrc= fopen(argv[1],"rb");
FILE* fpDst= fopen(argv[2],"wb");int k=0;while(1)
{int val= fgetc(fpSrc);if (feof(fpSrc))break;
val^= nKey;
fputc(val, fpDst);
}

fclose(fpSrc);
fclose(fpDst);return0;
}

编译出来比如叫EnDecrypt.exe, 要加密的二进制文件为abc.bin, 加密后的文件为abc.enc
只需要执行 "EnDecrypt abc.bin abc.enc"命令就行了。abc.bin要和EnDecrypt.exe在同一个目录里。
解密abc.enc时,只需要"EnDecrypt abc.enc new_abc.bin"就行了。新生成的new_abc.bin和abc.bin这两个文件完全相同。
[/Quote]嘎嘎,谢谢啦!
thy38 2009-09-05
  • 打赏
  • 举报
回复
学习了
野男孩 2009-09-04
  • 打赏
  • 举报
回复
最简单的逐字加密解密:


#include <stdio.h>

int nKey = 0xaa;

int main(int argc, char * argv[])
{
FILE* fpSrc = fopen(argv[1], "rb");
FILE* fpDst = fopen(argv[2], "wb");

int k=0;
while(1)
{
int val = fgetc(fpSrc);
if (feof(fpSrc))
break;
val ^= nKey;
fputc(val, fpDst);
}

fclose(fpSrc);
fclose(fpDst);

return 0;
}


编译出来比如叫EnDecrypt.exe, 要加密的二进制文件为abc.bin, 加密后的文件为abc.enc
只需要执行 "EnDecrypt abc.bin abc.enc"命令就行了。abc.bin要和EnDecrypt.exe在同一个目录里。
解密abc.enc时,只需要"EnDecrypt abc.enc new_abc.bin"就行了。新生成的new_abc.bin和abc.bin这两个文件完全相同。
yuhongpingimu 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mstlq 的回复:]
引用 2 楼 wanghao111 的回复:
哈希加密


哈希很多时候是不可逆的,朋友……
哈希用来做签名可以,加密就囧了……
[/Quote]那你能不能说说啊!?
yuhongpingimu 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 whg01 的回复:]
如果安全加密的话,用AES加密。网上能搜到vc的工程。
简单点的话,随即生成一个unsign char m[256]数据,加密时从文件头到末尾,逐个字节用m中的元素做异或。m循环使用。比如:文件0位置用m[0],文件1位置用m[1],文件k位置用m[k%256]。
解密和加密运算一样。
一个数用另一个数做2次异或,等于原来的值。
[/Quote]我初学MFC,好像是用CFile类,里面的什么东西。能不能再给点提示哇?
mstlq 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wanghao111 的回复:]
哈希加密
[/Quote]

哈希很多时候是不可逆的,朋友……
哈希用来做签名可以,加密就囧了……
yuhongpingimu 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hikaliv 的回复:]
我要三十分,嘿嘿。
[/Quote]我另外开贴给你加分,好不。。。
yuhongpingimu 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wanghao111 的回复:]
哈希加密
[/Quote]不是求一种算法。
光宇广贞 2009-09-04
  • 打赏
  • 举报
回复
我要三十分,嘿嘿。
wanghao111 2009-09-04
  • 打赏
  • 举报
回复
哈希加密
whg01 2009-09-04
  • 打赏
  • 举报
回复
如果安全加密的话,用AES加密。网上能搜到vc的工程。
简单点的话,随即生成一个unsign char m[256]数据,加密时从文件头到末尾,逐个字节用m中的元素做异或。m循环使用。比如:文件0位置用m[0],文件1位置用m[1],文件k位置用m[k%256]。
解密和加密运算一样。
一个数用另一个数做2次异或,等于原来的值。

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧