• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 文件加密技術一例

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    給文件加密的技術很多,其中又分為不同等級,以適合不同場合的需要。這里給出最簡單的文件加密技術,即采用文件逐字節與密碼異或方式對文件進行加密,當解密時,只需再運行一遍加密程序即可。 下面是一個實例程序,能對任意一個文件進行加密,密碼要求用戶輸

        給文件加密的技術很多,其中又分為不同等級,以適合不同場合的需要。這里給出最簡單的文件加密技術,即采用文件逐字節與密碼異或方式對文件進行加密,當解密時,只需再運行一遍加密程序即可。

        下面是一個實例程序,能對任意一個文件進行加密,密碼要求用戶輸入,限8位以內(當然你可以再更改)。程序有很好的容錯設計,這是我們應該學習的。

    /* Turbo 2.0 pass. give file a password! */

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<string.h>

    void dofile(char *in_fname,char *pwd,char *out_fname);/*對文件進行加密的具體函數*/

    void main(int argc,char *argv[])/*定義main()函數的命令行參數*/
    {
    char in_fname[30];/*用戶輸入的要加密的文件名*/
    char out_fname[30];
    char pwd[8];/*用來保存密碼*/

    if(argc!=4){/*容錯處理*/
    printf("\nIn-fname:\n");
    gets(in_fname);/*得到要加密的文件名*/

    printf("Password:\n");
    gets(pwd);/*得到密碼*/

    printf("Out-file:\n");
    gets(out_fname);/*得到加密后你要的文件名*/


    dofile(in_fname,pwd,out_fname);
    }
    else{/*如果命令行參數正確,便直接運行程序*/
    strcpy(in_fname,argv[1]);
    strcpy(pwd,argv[2]);
    strcpy(out_fname,argv[3]);
    dofile(in_fname,pwd,out_fname);
    }

    }


    /*加密子函數開始*/
    void dofile(char *in_fname,char *pwd,char *out_file)
    {
    FILE *fp1,*fp2;
    register char ch;
    int j=0;
    int j0=0;

    fp1=fopen(in_fname,"rb");
    if(fp1==NULL){
    printf("cannot open in-file.\n");
    exit(1);/*如果不能打開要加密的文件,便退出程序*/
    }
    fp2=fopen(out_file,"wb");
    if(fp2==NULL){
    printf("cannot open or create out-file.\n");
    exit(1);/*如果不能建立加密后的文件,便退出*/
    }
    while(pwd[++j0]);
    ch=fgetc(fp1);

    /*加密算法開始*/
    while(!feof(fp1)){
    fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*異或后寫入fp2文件*/
    ch=fgetc(fp1);
    }
    fclose(fp1);/*關閉源文件*/
    fclose(fp2);/*關閉目標文件*/
    }

    /*程序結束*/

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>