Вы могли назвать анонимного делегата:-)
, И можно записать второе как:
someList.ForEach(s => s.ToUpper())
, Который я предпочитаю и сохраняю большой ввод.
, Поскольку Joachim говорит, параллелизм легче относиться к второй форме.
Узнайте разницу между хешами и шифрованием. Шифрование - это обычно двусторонняя интерпретация строки. Я могу зашифровать свой пароль, а затем снова расшифровать его до открытого текста. Идея хэшей заключается в том, что они становятся односторонним «шифрованием».
На своих сайтах я храню пароли в виде хэшей. Каждый раз, когда пользователь входит в систему, я повторно хеширую предоставленный им пароль, проверяю его по хешу, хранящемуся в базе данных, и подтверждаю, совпадают ли они. Я не могу отправить им свой пароль, если они его забудут, поскольку (как правило) у меня нет возможности узнать об этом. Две разные строки могут быть переведены в один и тот же хеш, что делает (как правило) невозможным узнать, что это была за исходная строка.
Это одна из проблем, по которой полезно получить твердое представление о том, когда использовать шифрование, а когда использовать хеш-коды.
Не следует писать собственные функции шифрования. Существующая надежная библиотека - лучший способ найти там, где это возможно. Избегайте крутых, передовых технологий, которым не хватает многих часов успешных программистов и часов пользователя. Не доверяйте выбранной вами функциональности, пока вы не протестируете ее самостоятельно, от первого лица. Будьте в курсе новых разработок, которые могут в одночасье устареть выбранной вами функциональностью. Знайте, что только потому, что вы используете лучшую технологию шифрования, доступную на сегодняшний день, вы ничего не защитите, если оставите ключи в таблице (например, открытый текст не находится в кеше или хранится в другой таблице в той же базе данных, а закрытые ключи - нет. оставлено открытым)
Эта технология не является самым слабым звеном в безопасности.
Где узнать о безопасности: найдите книгу Шнайера Прикладная криптография .
Пожалуйста, обратите внимание на следующие моменты при хранении паролей.
Хешированный пароль обычно более безопасен, потому что вам не нужно хранить секреты. Однако это не позволяет вам использовать другую схему на основе хешей в потоке аутентификации. Например, вы можете ' t использовать дайджест-аутентификацию HTTP с хешированным паролем.
Простой хэш подвержен атакам с радужной таблицей ( http://en.wikipedia.org/wiki/Rainbow_table ). Пожалуйста, добавьте одноразовый номер в хэш или используйте одноразовый номер как ключ к HMAC. Одноразовый номер необходимо хранить вместе с паролями. Я добавляю его к дайджесту.
Если используется шифрование, убедитесь, что используется случайный начальный вектор, чтобы один и тот же пароль был зашифрован с разными шифротекстами для разных пользователей. В противном случае вы подвержены атаке на соответствие образцу. MySQL имеет встроенную команду шифрования. Он не вводит IV, поэтому никогда не используйте его для паролей.
Сохраните имя / версию ключа с зашифрованным текстом, чтобы ключи можно было чередовать. Смена ключей требуется для соблюдения определенных стандартов.
Краткий ответ
Вы никогда не можете быть слишком безопасными
Используйте Salted Хеширование паролей для повышения безопасности
Более подробный ответ (хотя и не полный)
Безопасность - это не то, что нужно изучить с помощью краткого руководства в Интернете. Это требует глубоких знаний не только о том, какие уязвимости существуют, но и ПОЧЕМУ они существуют и КАК они работают. Одна из самых больших проблем (особенно с открытым исходным кодом) заключается в том, что все время добавляются новые методы, поэтому мы должны понимать концепции и теорию безопасности.
Читайте книги, посещайте занятия и самостоятельно проверяйте уязвимости на локальном компьютере. Затем вы медленно начнете понимать концепцию защиты веб-приложения.
Ознакомьтесь со следующей информацией, чтобы начать
Check out the Open Web Application Security Project. They have a lot of information on the current web app security issues and what you need to do to defend against them. OWASP is putting together a Development Guide that provides a lot of good information on web apps and web services development issues.
If you're looking at it from a PHP context, I'd recommend this book:
The thing I really like about this book is it covers much more than just a list of the security-related functions in PHP. A large part of it covers general web security concepts and protection mechanisms. Permissions, principle of least privilege, encryption, hashing, cross-site scripting, cross-site request forgeries, session hijacking, etc. are all covered here, with examples of writing secure code in PHP.
Having taken graduate-level security classes in college, I'm impressed with the coverage in this book. I'd consider it required reading for any professional PHP developer.
Сначала вы должны ознакомиться с этими методами php:
Здесь у вас есть все криптографические расширения PHP.