Лучший способ установить среду сборки Windows для C/C++

MD5 был криптографически взломан довольно давно. Это в основном означает, что некоторые свойства, обычно гарантируемые хеш-алгоритмами, больше не выполняются. Например, можно найти коллизии хешей за гораздо меньшее время, чем потенциально необходимо для длины вывода.

SHA-512 (одна из хеш-функций семейства SHA-2) на данный момент достаточно безопасна, но, возможно, не намного дольше в обозримом будущем. Вот почему NIST начал конкурс на SHA-3.

Как правило, вы хотите, чтобы алгоритмы хеширования были односторонними функциями. Они сопоставляют некоторый вход с некоторым выходом. Обычно выходные данные имеют фиксированную длину, что обеспечивает «дайджест» исходного ввода. Общие свойства, например, заключаются в том, что небольшие изменения во входных данных приводят к большим изменениям в выходных данных (что помогает обнаруживать несанкционированное вмешательство) и что функция не является легко обратимой. Для последнего свойства длина вывода очень помогает, потому что она обеспечивает теоретическую верхнюю границу сложности атаки столкновения. Однако недостатки в дизайне или реализации часто приводят к снижению сложности атак. Как только они станут известны, пришло время оценить, по-прежнему ли используется хеш-функция. Если сложность атаки падает достаточно далеко, практические атаки легко попадают в круг людей без специального компьютерного оборудования.

Примечание: я говорил только об одном виде атаки здесь. Реальность хоть и гораздо более нюансированная, но и гораздо сложнее понять. Поскольку хэш-функции очень часто используются для проверки целостности файла / сообщения, коллизия, вероятно, самая простая для понимания и отслеживания.

9
задан AndrewM 28 October 2009 в 19:24
поделиться

9 ответов

Самый простой и лучший способ компилировать в Windows - использовать visual studio expres s. Это бесплатно. Хорошая причина для использования cygwin - кроссплатформенные сборки. Хорошая причина использовать gcc - это поддержка некоторых конфет компилятора, которых нет в компиляторе Microsoft.

Но в целом VC ++ Express - это способ разработки только для Windows.

7
ответ дан 4 December 2019 в 12:19
поделиться

Всегда есть возможность использовать -mno-cygwin с Cygwin для компиляции с библиотеками Windows, такими как MinGW:

gcc -mno-cygwin file.c -o test

Это непростой выбор и в основном зависит от насколько вы будете полагаться на другие библиотеки. Cygwin действительно добавляет дополнительный уровень, который тяжелее, но "эмулирует" среду Linux лучше, чем MinGW.

Изменить:

Qt Creator позволяет вам компилировать с MinGW в Windows (и gcc в Linux, ...), имеет IDE, которая делает отладку более удобной, чем gdb. Если вам нужны библиотеки, у вас все еще есть возможность использовать библиотеки Qt. Это было бы хорошей альтернативой Visual Studio, если вы действительно хотите придерживаться gcc для будущей переносимости.

5
ответ дан 4 December 2019 в 12:19
поделиться

Вы можете посмотреть CodeBlocks . Обычно он используется для создания приложений WxWidgets, но он прекрасно дополняет MinGW.

3
ответ дан 4 December 2019 в 12:19
поделиться

На самом деле, есть вариант №3: если ваша версия Windows позволяет это, вы можете установить Microsoft Services для Unix / Подсистему для Unix-приложений , а затем получить gcc из SUACommunity . Также есть менеджер пакетов. Из этих 3 вариантов это даст вам поведение, наиболее близкое к истинной системе Unix.

Однако результирующие приложения не являются приложениями Win32; это приложения SUA, и для их работы потребуется SUA. Если вы пишете код для себя, это обычно не проблема, если вы пишете код для себя, но если вы хотите писать и распространять правильное приложение Windows, я бы посоветовал держаться подальше от всего, что пытается подражать Unix, так что MinGW это так.

это даст вам поведение, наиболее близкое к истинной системе Unix.

Однако полученные приложения не являются приложениями Win32; это приложения SUA, и для их работы потребуется SUA. Если вы пишете код для себя, это обычно не проблема, если вы пишете код для себя, но если вы хотите писать и распространять правильное приложение Windows, я бы посоветовал держаться подальше от всего, что пытается подражать Unix, так что MinGW это так.

это даст вам поведение, наиболее близкое к истинной системе Unix.

Однако полученные приложения не являются приложениями Win32; это приложения SUA, и для их работы потребуется SUA. Если вы пишете код для себя, это обычно не проблема, если вы пишете код для себя, но если вы хотите писать и распространять правильное приложение Windows, я бы посоветовал держаться подальше от всего, что пытается подражать Unix, так что MinGW это так.

1
ответ дан 4 December 2019 в 12:19
поделиться

Qt Creator стандартно поставляется с MinGW и может использоваться для создания проектов, которые фактически не используют фреймворк Qt.

1
ответ дан 4 December 2019 в 12:19
поделиться

На Equation.com есть простой в установке GCC, заключенный в оболочку MinGW. Щелкните «Инструменты программирования», затем «Фортран, C, C ++», загрузите нужный выпуск, установите и используйте.

0
ответ дан 4 December 2019 в 12:19
поделиться

Я думаю, что ответ зависит от того, собираетесь ли вы использовать библиотеки или компилировать программы, ориентированные на POSIX или целевые объекты на основе POSIX. Для этого предназначен Cygwin, тогда как MinGW больше предназначен для компиляции программ, ориентированных на Windows, с использованием GCC.

0
ответ дан 4 December 2019 в 12:19
поделиться

Один из возможных методов - использовать CMake , который может построить проект Visual Studio из ваших источников, а затем скомпилировать из Visual Studio. Он также может создавать проекты для других IDE, поэтому вы можете использовать кроссплатформенность.

0
ответ дан 4 December 2019 в 12:19
поделиться

Другой вариант - TDM MinGW: http://www.tdragon.net/recentgcc/

Это в основном неофициальный форк MinGW с последний компилятор GCC, доступный как для 32-, так и для 64-битных машин Windows. Его используют даже сами разработчики MinGW.

Уравнение Gcc еще лучше: http://www.equation.com/servlet/equation.cmd?fa=fortran

0
ответ дан 4 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: