0 / 0 / 0
Регистрация: 23.01.2015
Сообщений: 4
|
||||||
Шифрование нетекстовых данных AES23.01.2015, 16:34. Показов 2483. Ответов 6
Метки нет Все метки)
(
Приветствую вспех форумчан!
Я не программист, но возникла необходимость реализовать шифрование AES для американской налоговой. Написал/натырил вот такой вот код:
DecryptStringFromBytes_Aes(EncryptFiles( )); Сделал так специально, чтобы исключить ошибку при записи файла на диск и работать непосредственно с зашифрованными байтами. Увы, не помогло. И вот если данные текстовые, то все проходит на ура, но с зип архивом все существенно грустнее - в расшифрованном файле все нетекстовые символы портятся, при том что все текстовые остаются правильными. куда можно копать?
0
|
23.01.2015, 16:34 | |
Ответы с готовыми решениями:
6
AES шифрование Шифрование AES 128. AES шифрование. Заполнение неверно и не может быть удалено |
Администратор
![]() ![]() |
||||||
23.01.2015, 17:48 | ||||||
jazzmz, бинарный файл нельзя читать и записывать как текст. Вместо ReadAllText/WriteAllText следовало использовать ReadAllBytes/WriteAllBytes. Еще лучше воспользоваться методом Stream.CopyTo (если у тебя .NT 4 и выше). Я бы написал методы так:
1
|
0 / 0 / 0
Регистрация: 23.01.2015
Сообщений: 4
|
|
23.01.2015, 20:52 [ТС] | |
Ой точняк, ЗИП читаю как строку, блин. Тестил то на строках и забыл поменять.
Если честно, увы, не очень понимаю до конца место, где идет работа со Stream ![]() Метод getFolder() получает имя папки для выбранного на отправку в налоговую файла (соответственно и все файлы валятся туда же, их очень много, т.к. там довольно обширные требования у налоговой и пришлось написать очень много разных обработчиков) Добавлено через 13 минут Спасибо огромное за подсказку!
0
|
Администратор
![]() ![]() |
|
23.01.2015, 21:23 | |
Там же всё прямолинейно. При шифровании открываем входной файл на чтение, выходной на запись. Для самой операции шифрования создаем CryptoStream "вокруг" потока для выходного файла. Затем одним вызовом sourceStream.CopyTo(csEncrypt) копируем данные из входного файла через CryptoStream - выполняя шифрование - в выходной файл. При дешифровании делается то же самое с поправкой на порядок создания потоков. Вокруг входного потока создаем CryptoStream в режиме дешифрования и копируем данные из него в выходной поток. Единственная неясность которая тут может возникнуть это взаимосвязь трех потоков. Чтобы её понять не надо глубоко вникать в потоки. Надо просто внимательно прочитать код.
Повторю совет. Не изобретай велосипед, а используй методы класса Path.
1
|
Администратор
![]() ![]() |
|
23.01.2015, 23:17 | |
jazzmz, поток это источник бинарных данных с поддержкой чтения/записи. Также можно сказать что поток это класс-наследник System.IO.Stream. Физическое воплощение потока зависит от конкретного потока: FileStream - файл на диске, MemoryStream - массив в памяти, NetworkStream - данные получаемые по сети. Некоторые потоки являются так сказать вспомогательными. В том смысле что они применяются вместе с другими потоками, а не сами по себе. Например, CryptoStream (шифрование/дешифрование) или GZipStream (архивация/деархивация).
1
|
0 / 0 / 0
Регистрация: 23.01.2015
Сообщений: 4
|
|
26.01.2015, 10:42 [ТС] | |
Еще раз спасибо огромное, помогло!
0
|
26.01.2015, 10:42 | ||||||
Помогаю со студенческими работами здесь
7
Шифрование данных.
Шифрование базы данных
Aes шифрование Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
|
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
|
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
|
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
|
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
|
Аутентификация и авторизация JWT в микросервисах с API Gateway
stackOverflow 12.04.2025
В традиционных монолитных приложениях безопасность часто реализуется как единый защитный периметр - пользователь проходит аутентификацию один раз, после чего получает доступ ко всем функциям системы. . . .
|
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
|
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
|
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
|
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
|