VERte][
28.11.2009, 02:23
Собственно сел тут писякать программу шифрующую/расшифровывающую файлы по алгоритму aes. Вроде как все функции написал, прогнал тест на 128 битах текста, все тип-топ, ещё пару тестов из текстов слепленных из первого, все пашет. Загоняю текстик побольше, там какое-то интервью артиста, и получаю на выходе понятное дело хню - после шифровки+расшифровки получаю только часть текста, причем размер зашифрованного текста не удовлетворяет мои представлениям о том каким он должен быть, я естественно схватился за отладчик, и вот что получил, ещё на обработки исходного текста:
http://s53.radikal.ru/i140/0911/1c/94f1f7a515b6t.jpg (http://radikal.ru/F/s53.radikal.ru/i140/0911/1c/94f1f7a515b6.png.html)
как видите текст, который есть в блокнотике не совпадает с тем что VS получила, концы различаются.
Далее ещё веселее - смотрю я на размер исходного текста, на то что выдает студия и на то сколько байт я таки считал на обработке текста, получаю такую вещь:
1) что думает студия
http://i054.radikal.ru/0911/85/0682e033f60ct.jpg (http://radikal.ru/F/i054.radikal.ru/0911/85/0682e033f60c.png.html)
2) что думает винда
http://i032.radikal.ru/0911/9b/5b3981bee9cbt.jpg (http://radikal.ru/F/i032.radikal.ru/0911/9b/5b3981bee9cb.png.html)
3) и что я думаю (складываем count и writed)
http://s58.radikal.ru/i161/0911/42/17bacc7b4377t.jpg (http://radikal.ru/F/s58.radikal.ru/i161/0911/42/17bacc7b4377.png.html)
И вот ещё что: в самом конце считывание остановилось где надо, появилась буковка "я", которая как я понимаю обозначила конец файла, ибо это 0xFF, что впринципе и возвращает ifstream::get() при достижении конца файла.
http://i014.radikal.ru/0911/c3/59be94406d8bt.jpg (http://radikal.ru/F/i014.radikal.ru/0911/c3/59be94406d8b.png.html)
Так вот кто сталкивался с такими проблемами "размера файла", и если вдруг сталкивался, то как с ними бороться или с чем хотя бы они могут быть связаны? Использовал я для обработки данных файла функции класса fstream: put, get, eof.
И ещё как оказалось, функция get не считывает например 0x1A, возвращая конец файла, поэтому то у меня и терялась часть файла при шифровании-расшифровании, вот сижу думаю какие функции использовать чтоб именно считывать все байты из файла без разбора, может кто что подскажет? (пока надумываю обратиться в сторону сишного fread, и все переписывать =( )
http://s53.radikal.ru/i140/0911/1c/94f1f7a515b6t.jpg (http://radikal.ru/F/s53.radikal.ru/i140/0911/1c/94f1f7a515b6.png.html)
как видите текст, который есть в блокнотике не совпадает с тем что VS получила, концы различаются.
Далее ещё веселее - смотрю я на размер исходного текста, на то что выдает студия и на то сколько байт я таки считал на обработке текста, получаю такую вещь:
1) что думает студия
http://i054.radikal.ru/0911/85/0682e033f60ct.jpg (http://radikal.ru/F/i054.radikal.ru/0911/85/0682e033f60c.png.html)
2) что думает винда
http://i032.radikal.ru/0911/9b/5b3981bee9cbt.jpg (http://radikal.ru/F/i032.radikal.ru/0911/9b/5b3981bee9cb.png.html)
3) и что я думаю (складываем count и writed)
http://s58.radikal.ru/i161/0911/42/17bacc7b4377t.jpg (http://radikal.ru/F/s58.radikal.ru/i161/0911/42/17bacc7b4377.png.html)
И вот ещё что: в самом конце считывание остановилось где надо, появилась буковка "я", которая как я понимаю обозначила конец файла, ибо это 0xFF, что впринципе и возвращает ifstream::get() при достижении конца файла.
http://i014.radikal.ru/0911/c3/59be94406d8bt.jpg (http://radikal.ru/F/i014.radikal.ru/0911/c3/59be94406d8b.png.html)
Так вот кто сталкивался с такими проблемами "размера файла", и если вдруг сталкивался, то как с ними бороться или с чем хотя бы они могут быть связаны? Использовал я для обработки данных файла функции класса fstream: put, get, eof.
И ещё как оказалось, функция get не считывает например 0x1A, возвращая конец файла, поэтому то у меня и терялась часть файла при шифровании-расшифровании, вот сижу думаю какие функции использовать чтоб именно считывать все байты из файла без разбора, может кто что подскажет? (пока надумываю обратиться в сторону сишного fread, и все переписывать =( )