Проект Stack предназначен для знакомства с типом данных "стек" (stack) и некоторыми инструментами для защиты данных. Автор: Шляпин Илья (isshlyapin)
- Язык программирования C
- Автоматизация создания статической библиотеки с помощью bash script
В данной реализации стека были использованы следующие методы обеспечения целостности данных:
-
Хеширование хранимых данных: Для контроля за целостностью данных мы применяем хеширование. Каждый элемент, добавляемый в стек, хешируется, и хеш сохраняется вместе с данными. При извлечении элемента из стека мы снова вычисляем хеш и сравниваем его с сохраненным. Если хеши не совпадают, это может указывать на повреждение данных.
-
"Канарейки": Для дополнительной защиты мы используем так называемые "канарейки". Это специальные значения, которые размещаются по краям хранимых данных. Если "канарейка" изменяется (например, из-за переполнения или другой ошибки), это может служить сигналом о проблеме.
-
Хеширование самих "канареек": Для обеспечения целостности "канареек" мы также хешируем их значения. Это позволяет обнаруживать даже скрытые изменения.
-
Дамп данных: В случае порчи данных предусмотрен дамп. Дамп собирает всю информацию о возникших ошибках и предоставляет ее пользователю. Это помогает быстро выявить и исправить проблемы.
- Склонируйте репозиторий:
git clone https://github.com/isshlyapin/Stack.git
- Перейдите в директорию проекта:
cd Stack - Соберите проект
- Запустите тесты
- Сборку с помощью CMake
- Тестирование с помощью Criterion
Этот проект создан в образовательных целях. Не используйте его в критических системах без дополнительного тестирования и анализа безопасности.