文件加密算法实现
文件加密算法实现
作者:王树斌 赵杨杰
来源:《电脑知识与技术》2014年第12
        摘要:该文简单介绍了加密的概念以及常用的加密技术,并用一个C语言程序实现了文件加密。
        关键词:数据加密;C语言
        中图分类号:TP311 文献标识码:A 文章编号:1009-3044201412-2730-02
        1 概述
        随着网络技术的发展,网络安全也就成为当今网络社会焦点中的焦点。由于某些特殊的需要,一些敏感数据或者是保密性文件需要在网上供多人共享,电子商务、等等,都对数据的保密要求比较高。由此,对文件进行加密就显得尤为重要。
        2 什么是加密
        加密就是对原来我们能够直接阅读理解的数据内容(明文)按某种特殊的算法进行处理,使其成为不可读的一段代码,通常称为密文。如果我们需要再次使用这些密文,必须输入相应的密钥,使密文转换为明文。通过这样的加密,可以达到保护数据不被人非法窃取、阅读的目的。常用的加密算法有置换表算法、对称密钥加密算法、基于公钥的加密算法等。
        3 C语言实现文件加密
        给文件加密的算法根据加密需求的不同而分为不同的等级,该文算法能对任意一个文件进行加密,密码要求用户输入,限8位以内。
        程序使用pswfile()函数实现加密,算法利用fgetc()函数和fputc()函数从文件中逐字节读取和存储数据,将读取的字节码与密钥进行异或操作,从而隐藏字节码的信息。然后,程序将异或后的字节码所对应的字符输出到目标文件中。
        程序的主要代码如下:
        #include
        #include
        #include
        #include
        .
        void pswfilechar *innamechar *pswchar *outname);/* 函数声明*/
        void mainint argcchar *argv[]
共享文件如何加密        {
        char inname[30]
        char outname[30]
        char psw[8]
        ifargc=4{ /* 容错处理*/
        printf请输入需要加密的文件名\n”);
        getsinname);
        printf请输入密码:\n”);
        getspsw); /* 输入密码 */
        printfpsw);
        printf请输入输出的文件名\n”);
        getsoutname); /* 加密后的文件名*/
        pswfileinnamepswoutname); }
        else {
        strcpyinnameargv[1]);
        strcpypswargv[2]);
        strcpyoutnameargv[3]);
        pswfileinnamepswoutname);
        }}
        void pswfilechar *innamechar *pswchar *outname
        {FILE *fp1*fp2
        char ch
        int i=0j=0
        fp1=fopeninname”rb”); /*以二进制只读方式打开要加密的文件*/
        iffp1=NULL{
        printf该文件不能打开或者不存在\n”);
        exit1); /* 如果不能打开,则退出程序 */
        }
        fp2=fopenoutname”wb”);
        iffp2=NULL{
        printf该文件不能打开或者创建给文件\n”);
        exit1); /* 如果不能加密,退出程序 */
        }
        whilepsw[++j]);
        ch=fgetcfp1);
        while(!feoffp1)){
        fputcch^psw[i>=ji=0i++]fp2); /*异或后写入文件*/
        ch=fgetcfp1);
        }
        fclosefp1); /* 关闭文件指针*/
        fclosefp2);
        }
        4 结束语
        本文重在用C语言实现文件加密的算法,对文件进行加密后的安全等级没有进行太多考量。对于本文算法的解密,不难想到,把加密后的密文作为明文再次加密即可。
        参考文献:
        [1] 郑宇,杨春生,于江.加密与解密实战入门[M].北京:电子工业出版社,2006.
        [2] 金鼎图书工作室·加密解密文件保护与数据恢复[M].成都:四川电子音像出版中心,2003.
        [3] 谭浩强·C语言程序设计[M].北京:清华大学出版社,1998.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。