![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| 256zib |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 7.12.2009 Репутация: нет Всего: нет |
Всем привет!
Такая проблема: Есть набор битов, нужно создать новый файл, который будет в виде этих битов. Если подробнее, то нужно побитово зашифровать файл, т.е. есть какой нибудь файл например mic.mp3, нужно последовательно перебирать и шифровать его байты. Перебирать и зашифровать получается, а вот правельно сохранить нет ( |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
А стандартные методы шифрования не подходят?
|
|||
|
||||
| 256zib |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 7.12.2009 Репутация: нет Всего: нет |
Нет,нужен именно мой. Пишу диплом, использую MC#,если слышали. Думал либо перегрузить имеющиеся стандартные методы или свою использовать. В любом случае надо выполнить шифрование побитово.
|
|||
|
||||
| kobra |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
||||
|
||||
| 256zib |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 7.12.2009 Репутация: нет Всего: нет |
#region Зашифровать файл
public void SochrFile(string FName) { System.IO.FileStream fs; BinaryReader binReader = new BinaryReader(File.Open(FName, FileMode.Open)); //сохраняем виты в binRead if (!System.IO.File.Exists("new"+FName)) //создаем новый файл { using (fs = System.IO.File.Create(FName)) { for(int i=0; i<=fs.Length-1; i++) { fs.WriteByte(binReader.ReadByte()); } } } } #endregion или System.IO.FileStream fs2; System.IO.FileStream fs1; using (fs1 = System.IO.File.OpenRead(FName)) { fs2=System.IO.File.Create("new"+FName); for (int i = 0; i <= fs1.Length - 1; i++) { fs2.WriteByte((byte)fs1.ReadByte()); } } } |
|||
|
||||
| 256zib |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 7.12.2009 Репутация: нет Всего: нет |
Разобрался
Вот пример, код конечно тестовый, но то, что мне надо, он делает ) Создает файл, изменяя все его байты сдигов влево byte[] byData = new byte[8220672]; // масив байтов заранее знаю размер, потом поменяю try { // файловый поток, открывает файл (при отсутсвии создает) только для чтения FileStream fs = new FileStream("wer.mp3", FileMode.OpenOrCreate, FileAccess.Read); if (fs.CanSeek == true) // если можно производить поиск { fs.Seek(55, SeekOrigin.Begin); // делаем отступ на 55 байт с начала файла // чтение данных и запись в масив байтов, со двигом в мас. 0, и длинной в 100 байт fs.Read(byData, 0, 8220672); } fs.Dispose(); // освобождаем ресурсы } { // MessageBox.Show(err.Message); return; } try { using (FileStream fs=File.Create("new.mp3")) { fs.Seek(55, SeekOrigin.Begin); for (int i = 0; i <= fs.Length; i++) byData[i] = (byte)(byData[i]>>1); // Изменяем ,fqns сдвигом fs.Write(byData, 0, byData.Length); // запись массива байт } } catch (Exception err) { // MessageBox.Show(err.Message); return; } |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |