Задумался тут на досуге, какой алгоритм хеширования лучше, MD5 или SHA1? Хотелось бы услышать мнения народа.
оффтоп: так бесят надписи, типа "Первый залетевший дятел разрушил бы цивилизацию, если бы строители строили здания так же, как программисты пишут программы.", хотелось бы узнать, кто нибудь из тех, кто эти надписи рисует когда нибудь писал программу, посложнее hello world?
Любой из них можно "сбрутфорсить" по этому важнее не какой использовать а как... оффтоп: antonn Закономерный вопрос, а вы ? (когда нибудь писали программу, посложнее hello world ?) Я писал и полностью поддерживаю эти надписи, реально высококлассных программистов в мире очень мало (в процентном соотношении, гораздо больше "писак" которые пишут дерьмо и отмазываются тем что им мало платят, хотя по моему опыту скажу что если дать идиоту миллион баксов лучше он писать не станет, просто понтов у него станет больше)
оффтоп: писал, ничего не порушилось, никто не умер. Вопрос только, что считать высококлассной программой. очень не понятно, как можно поддерживать эту надпись, если вы писали "нормальные" программы. Ибо следуя логике, "Первый залетевший дятел разрушил бы цивилизацию, если бы строители строили здания так же, как программисты пишут программы" - любой программист пишет кривые программы.
оффтоп: antonn Программу которая делает то что должна делать и САМОЕ ГЛАВНОЕ не делает то что не должна. (т.е которую нереально взломать даже после изучения исходников.) Увы таких продуктов я практически не видел за всю свою жизнь. (только продукты из разряда "hello world")
что значить "взломать"? программу, мониторящая датчики состояний и положений металлорежущего станка, и отключающую электрооборудование в случае ЧП зачем взламывать? вроде сложнее хелло ворд... если подразумевалось "поломать" - то это возможно как при наличии исходников, так и обычного отладчика... зы кнопки "оффтоп" нет, неудобно
Да мало ли зачем, причин куча. Диверсия например или просто ошибка оборудования. Например датчик сломается даст сигнал программе твоей, а она его не правильно интерпретирует и зависнет. В результате поломка одного датчика приведёт к поломке всего станка. (Случаев таких было море.)
Vladson неправильно интерпретирует - это как? типа по-испански скажет "все сломано"? в таких решениях нет понятия "неправильно поймет и зависнет". (и это в общем то не понты, потому как проверяется и тестируется многими людьми, и не потому что станок дорогой, а потому что останов производства из-за неполадки еще больше убыточен). тут вообще речь завелась, что "все программисты пишут кривой софт"
ЖЪ Vladson кстати прав, сам недавно имел разговор с человеком из фирмы, занимающейся автоматизацией производства на одном заводе. Так вот написало одно тело программу для управления горелкой. Понаписывал там условия, начали тестить. По условию, если погасает огонь на горелке, то подача газа должна прекратитцо. При испытании не срабатывало, начали искать ошибку. Программист сделал умное лицо и сказал "Ща перепишу". Переписал по аналогии с австралийскими военными кенгуру заменив где 1-2 строки. Газ конечно перестал подаватцо после угасания горелки, но перестал подаватцо и после того, как горелку зажгли, т.е. клапан закрывался напрочь. Вот такие продолжались до тех пор, когда того кодера заменили на умного программиста.
При первых полетах транспортника С-17 (у него электродистанционная СУО, отказ - потеря самолета) этот отказ и произошел. Опытный экземпляр вернулся на базу, потому что не рискнули и оставили обычные тяги, несмотря на огромный опыт Ф-16 и других еропланов с такой СУО. Оказалось, что из-за установки измерительных датчиков они влияли на приемники воздушного давления (измеритель скорости) и давали искажение потока. Разница инфы от разных датчиков превысила порог (разбег параметров) и код СУО просто ОТКЛЮЧИЛСЯ, типа программа выполнила недопустимую операцию и т.п.
ну раз все начали припоминать такие страшные вещи "из-за кривого программиста", давайте еще вспомним про ракету "Ариан-5 ECA", которая переодически падала
Разве можно написать такой код, чтобы даже имея его исходники, нельзя было его взломать? Насчет защиты от взломов: какой адекватный человек, желающий стать нормальным программистом, не будет стараться защитить код? Ошибки бывают у всех, да и неопытных людей в любой профессии много, только рано или поздно они станут заниматься другой деятельностью. Еще дело вот в чем: сейчас большинство программистов-самоучек, разве в СССР учили в ВУЗах эту науку (даже если так, то языки усовершенствовались сильно). Да и сейчас преподавать программирование нормально могут мало где. В тех же вузах учат сразу несколько языков одновременно. Да, это хорошо, полезно. Но как можно писать хороший код, вот так немного углубившись в язык? ИМХО нормального кода можно добиться только спустя нескольких лет интенсивного программирования на одном языке, только тогда можно узнать его тонкости. А изучая сразу несколько языков, сразу все не уловить...
сейчас идет поток вообще неучей, которые пишут программы. Ладно бы учились и писали, но основных принципов нет совсем, это левой рукой через пятку правое ухо. Я вот не знаю как тут народ отнесется к "самоучителю по С++". Интересны оценки.
"Илюстрированый самоучитель по *изык_программирования* для профессионалов". - С картинками главное, быстрее станешь профессионалом ) Меня такие самоучители всегда прикалывают. кстати, кроме Кнута ничего не читал из книг
эээ, господа!!! Простите что прерываю, но вообще-то тема этого топика алгоритмы, а не обсуждение, простите, моей подписи. Кстати говоря, я не считаю себя первоклассным программистом, и вообще никто и никогда не может считаться таковым, потому что знать все (и тем более о программировании) невозможно. Давайте лучше поговорим об алгоритмах... Какой из этих 2 вы чаще используете и почему?