CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  工具平台和程序库

哪里有纯C的加密解密算法?

楼主8thdetective(bbllyy)2005-07-22 18:10:10 在 C/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

相关问题

  • 求加密解密算法
  • 有关加密解密算法!
  • 有谁懂DES加密/解密算法原理?
  • 寻求有关加密解密算法RC5的资料,急用!!!
  • 寻求一种数据库的加密解密算法
  • 寻求一种数据库的加密解密算法
  • 寻求一加密、解密算法:***在线***
  • 高分求一个加密/解密算法源代码
  • 小妹相求传输加密\解密算法
  • 有没有3DES-ECB的加密解密算法源代码?

关键词

  • 算法
  • 文件
  • 加密
  • 解密
  • null
  • fp
  • oldfile
  • puts
  • tmpfile
  • jiami

得分解答快速导航

  • 帖主:8thdetective
  • FBIq

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo