哪里有纯C的加密解密算法?
由于要在linux下加密解密文件和字符串,需要一些简便快捷的C的方法,请问哪里有,谢谢 问题点数:10、回复次数:11Top
1 楼pcboyxhy(-273.15℃)回复于 2005-07-22 18:14:34 得分 0
最简单的就是
密码 xor sourcefileTop
2 楼8thdetective(bbllyy)回复于 2005-07-22 19:29:46 得分 0
汗,不大明白,我希望有一些通用的类包Top
3 楼newbiestar()回复于 2005-07-22 19:53:19 得分 0
什么叫类包?C里面没有类……Top
4 楼FBIq(aiby)回复于 2005-07-22 19:57:40 得分 10
#include <stdio.h>
#include <stdlib.h>
int menu(void);
void jiami(void);
void (*ptr)(void);
void delfile(void);
void quit(void);
int main(void)
{
int n;
while(1)
{
n=menu();
switch(n)
{
case 1:
case 2: ptr=jiami; break;
case 3: ptr=delfile; break;
case 4: ptr=quit; break;
}
ptr();
}
return 0;
}
int menu(void)
{
int n;
do
{
puts("\n你要做什么?");
puts("\t\t\t\t1.文件加密");
puts("\t\t\t\t2.文件解密");
puts("\t\t\t\t3.删除文件");
puts("\t\t\t\t4.退出程序");
fflush(stdin);
scanf("%d",&n);
}while(n<1||n>4);
return n;
}
void jiami(void)
{
FILE *fp1 , *fp2;
char c , ch , oldfile[20] , tmpfile[24];
unsigned long j;
puts("提示:当你第一次运行本程序,是加密.再运行一次,则是解密.");
puts("\n请输入要加密或解密的文件和路径例如 d:\\abc.txt");
fflush(stdin);
gets(oldfile);
tmpnam(tmpfile);
puts("请输入密码");
scanf("%u",&j);
if((fp1=fopen(oldfile,"rb"))==NULL)
{
puts("意外错误回车键退出");
getch();
exit(0);
}
if((fp2=fopen(tmpfile,"wb"))==NULL)
{
puts("意外错误回车键退出");
getch();
exit(0);
}
srand(j);
ch=fgetc(fp1);
puts("进行中...");
while(!feof(fp1))
{
c=rand();
ch=ch^c;
fputc(ch,fp2);
ch=fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
if((fp1=fopen(tmpfile,"rb"))==NULL)
{
puts("意外错误回车键退出");
getch();
exit(0);
}
if((fp2=fopen(oldfile,"wb"))==NULL)
{
puts("意外错误回车键退出");
getch();
exit(0);
}
ch=fgetc(fp1);
while(1)
{
if(!feof(fp1))
{
fputc(ch,fp2);
ch=fgetc(fp1);
}
else
break;
}
fclose(fp1);
fclose(fp2);
remove(tmpfile);
puts("已完成回车键返回");
getch();
}
void delfile(void)
{
FILE *fp;
char filename[20];
puts("请输入要删除的文件和路径如:d:\\abc.txt");
fflush(stdin);
gets(filename);
remove(filename);
if((fp=fopen(filename,"r"))==NULL)
{
puts("删除成功回车键返回");
getch();
}
}
void quit(void)
{
exit(0);
}
Top
5 楼antijpn(antijpn)回复于 2005-07-22 19:59:46 得分 0
转工具平台和程序库Top
6 楼henan_lujun(地平风线)回复于 2005-07-23 09:38:22 得分 0
看看这本书吧《应用密码学(协议算法与C源程序)》,呵呵,握只有纸版,没有电子版的!
这本书讲了很多算法,给了很多参考文献,也给出了相当一部分算法的C语言源程序!
http://www.china-pub.com/computers/common/info.asp?id=94Top
7 楼masterz(www.fruitfruit.com)回复于 2005-07-23 18:10:32 得分 0
openssl,著名的开源库Top
8 楼Dev(东方云龙)回复于 2005-07-29 13:33:38 得分 0
网上满大街都是。
^_^Top
9 楼DiabloWalkOnTheEarth(我想到个绝妙的昵称,只是地方太小,写不下)回复于 2005-07-29 13:47:25 得分 0
openssl,著名的开源库Top
10 楼xunknown(爱你是我一生中理想)回复于 2005-07-29 15:28:38 得分 0
rfc1321-The MD5 Message-Digest Algorithm.txtTop
11 楼xiaojun789(笑)回复于 2005-07-30 20:55:17 得分 0
upTop




