在win API中加密文件

时间:2010-06-01 16:08:58

标签: c++ winapi cryptography

嗨,我必须编写一个windows api代码,通过在每个字符上添加三个来加密文件。

所以我写了这个,现在它没有做任何事......我在哪里冤枉

    #include "stdafx.h"
    #include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE filein,fileout;

    filein=CreateFile
    (L"d:\\test.txt",GENERIC_READ,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

    fileout=CreateFile
    (L"d:\\test.txt",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

    DWORD really; //later this will be used to store how many bytes I succeed to read
    do
    {
        BYTE x[1024];  //the buffer the thing Im using to read in
        ReadFile(filein,x,1024,&really,NULL);

        for(int i=0 ; i<really ; i++)
        {
            x[i]= (x[i]+3) % 256; 
        }

        DWORD really2;
        WriteFile(fileout,x,really,&really2,NULL);

    }while(really==1024);

    CloseHandle(filein);
    CloseHandle(fileout);

    return 0;
}

如果我正确,我怎么知道它的确定

1 个答案:

答案 0 :(得分:2)

首先,您无法覆盖正在使用的文件。您需要为输入和输出使用不同的路径名,然后在末尾重命名文件。