Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка, при чтении и записи файла.

301
25 января 2005 года
lord Kelvin
897 / / 08.11.2004
Код:
const DWORD Delta=0x9E3779B9;
union D2B
{
 DWORD dw[4];
 BYTE bt[16];
};
//---------------------------------------------------------------------------
void EnCryptDWORD(DWORD &y,DWORD &z,DWORD k0,DWORD k1,DWORD k2,DWORD k3)
{
 DWORD a,sum=0;
 for(a=0;a<32;a++)
 {
  sum+=Delta;
  y+=((z<<4)+k0)^(z+sum)^((z>>5)+k1);
  z+=((y<<4)+k2)^(y+sum)^((y>>5)+k3);
 }
}
//---------------------------------------------------------------------------
void EnCrypt(BYTE data[],DWORD key[])//8,16
{
 union D2B dt={0};
 memcpy((void*)dt.bt,data,8);
 EnCryptDWORD(dt.dw[0],dt.dw[1],key[0],key[1],key[2],key[3]);
 memcpy(data,dt.bt,8);
}
//---------------------------------------------------------------------------
void FileEnCrypt(char fnme[],char key[])
{
 union D2B ky={0};
 BYTE buff[8],bred;
 memcpy(ky.bt,key,16);
 SECURITY_ATTRIBUTES sa={0};
 HANDLE hFile=CreateFile(fnme,GENERIC_READ | GENERIC_WRITE,0,&sa,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
 if(hFile==INVALID_HANDLE_VALUE){ShowError();return;}
 do
 {
  if(!ReadFile(hFile,buff,8,&bred,NULL)){ShowError();return;}
  if(bred==8)EnCrypt(buff,ky.dw);
  if(SetFilePointer(hFile,-bred,NULL,FILE_CURRENT)==0xFFFFFFFF){ShowError();return;}
  if(!WriteFile(hFile,buff,bred,&bred,NULL)){ShowError();return;}
 }
 while(bred==8);
 CloseHandle(hFile);
}

Есть подозрение, что где-то здесь закралась ошибка.=(
301
25 января 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by lord Kelvin
Код:
const DWORD Delta=0x9E3779B9;
union D2B
{
 DWORD dw[4];
 BYTE bt[16];
};
//---------------------------------------------------------------------------
void EnCryptDWORD(DWORD &y,DWORD &z,DWORD k0,DWORD k1,DWORD k2,DWORD k3)
{
 DWORD a,sum=0;
 for(a=0;a<32;a++)
 {
  sum+=Delta;
  y+=((z<<4)+k0)^(z+sum)^((z>>5)+k1);
  z+=((y<<4)+k2)^(y+sum)^((y>>5)+k3);
 }
}
//---------------------------------------------------------------------------
void EnCrypt(BYTE data[],DWORD key[])//8,16
{
 union D2B dt={0};
 memcpy((void*)dt.bt,data,8);
 EnCryptDWORD(dt.dw[0],dt.dw[1],key[0],key[1],key[2],key[3]);
 memcpy(data,dt.bt,8);
}
//---------------------------------------------------------------------------
void FileEnCrypt(char fnme[],char key[])
{
 union D2B ky={0};
 BYTE buff[8]
 [color=RED]DWORD bred;[/color]
 memcpy(ky.bt,key,16);
 SECURITY_ATTRIBUTES sa={0};
 HANDLE hFile=CreateFile(fnme,GENERIC_READ | GENERIC_WRITE,0,&sa,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
 if(hFile==INVALID_HANDLE_VALUE){ShowError();return;}
 do
 {
  if(!ReadFile(hFile,buff,8,&bred,NULL)){ShowError();return;}
  if(bred==8)EnCrypt(buff,ky.dw);
  if(SetFilePointer(hFile,-bred,NULL,FILE_CURRENT)==0xFFFFFFFF){ShowError();return;}
  if(!WriteFile(hFile,buff,bred,&bred,NULL)){ShowError();return;}
 }
 while(bred==8);
 CloseHandle(hFile);
}

Есть подозрение, что где-то здесь закралась ошибка.=(


И все. Обидно.=)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог