Это хорошо, но не работает, как заметили mmyers из-за квадратных скобок:
Arrays.toString(objectArray).split(",")
Это одно уродливое, но работает:
Arrays.toString(objectArray).replaceFirst("^\\[", "").replaceFirst("\\]$", "").split(",")
Если вы используете этот код, вы должны быть уверены, что строки, возвращаемые объектами toString (), не содержат запятых.
Никогда не отправляйте пароль или другую конфиденциальную информацию в открытом виде. Это включает электронную почту. Вы также должны хранить как можно меньше этого в восстанавливаемом формате. Незашифрованное общение, особенно электронная почта, легко подделать, и вы не хотите, чтобы не те люди получали пароли.
Если возможно:
Храните пароли в соленом хеш-коде, чтобы исходный текст невозможно было восстановить, и, таким образом, невозможно сломать ничем, кроме атаки грубой силы. Если пользователь забыл свой пароль, заставьте его сбросить его и отправьте временный пароль (который они требуется изменить при входе в систему) или ссылку для подтверждения (которая, опять же, запрашивает новый пароль) через электронная почта.
Никогда не отправляйте ничего конфиденциального по электронной почте; если пользователю нужна информация, заставьте его перейти на ваш сайт, чтобы получить ее. Вы ведь используете HTTPS?
Люди часто делятся паролями между сайтами. Таким образом, вы должны предположить, что тот же пароль работает для онлайн-банкинга клиента, и вы никогда не должны отправлять его по электронной почте или предоставлять возможность (кем-то, притворяющимся) клиентом получить его.
Можно отправить им электронное письмо с подтверждением с их именем пользователя - это полезно.
Помните, если вы отправите им их пароль по электронной почте, они, вероятно, забудут об этом электронном письме или просто удалите его. Так что вам в любом случае нужен другой механизм сброса пароля.
Лучший способ справиться со случаем «забытого пароля» - это попросить пользователя отправить пользователю ссылку по электронной почте; когда они щелкают ссылку, вы разрешаете им ввести новый пароль.
Что касается личной информации (адрес, доход и т. д.): почему кому-то нужно, чтобы это было отправлено им по почте? Они это уже знают! Вы просто отправляете незашифрованные личные данные через Интернет без причины.
Мое практическое правило - если вы в порядке, пишите это на открытке и отправив по почте, то это нормально для стандартной электронной почты. Я не думаю, что информация о доходах попадает в эту категорию для большинства людей.
Что касается паролей, если они вообще не могут их запомнить, они не смогут найти электронное письмо, которое вы отправили им с пароль в нем, и это признание хранить его в открытом виде.
Проблема определенно заключается в отправке письма с паролем. Если он не зашифрован должным образом, кто-то потенциально может перехватить пакеты из отправляемой электронной почты и восстановить пароль. Кроме того, у человека потенциально может быть взломанная учетная запись электронной почты. Если кто-то украдет пароль, это не имеет большого значения, тогда вам, возможно, не стоит беспокоиться, но в противном случае я бы НЕ отправил незашифрованные пароли по электронной почте.
Изменить: Чтобы ответить на ваш второй вопрос, я бы даже не отправил его по электронной почте. Вместо этого я бы отправил ссылку, чтобы они могли легко увидеть свой профиль / информацию при входе в систему.
Я советую людям думать об электронной почте как об открытке - ее может прочитать сотрудник любой компании, которая обрабатывает ее между отправителем и получателем.
Когда вы отправляете какую-либо информацию по электронной почте, это небезопасно . Есть слишком много способов получить это. Для опытного хакера, стремящегося украсть вашу информацию, это будет детская игра.
Воздержитесь от отправки какой-либо личной информации , такой как пароли и сведения о доходах, по электронной почте, поскольку в случае утечки такой информации это может стать ОЧЕНЬ БРОНЮ для вас и вашей организации. или украден. Серьезно подумайте о безопасности. Достаточно одного инцидента, чтобы все кирпичи упали.
Что касается восстановления пароля, внимательно прочитайте Рекомендации по восстановлению пароля .
Суть в том, что приложение следование передовой практике должно позволить пользователь может сбросить свой пароль. Вопросы личной безопасности следует используемый. Заявление не следует отправлять электронная почта, отображение паролей и установка каких-либо временные пароли.
РЕДАКТИРОВАТЬ: Обновленная ссылка ...
У меня есть три правила относительно паролей:
- Не храните пароли в виде обычного текста в базе данных
- Почему люди должны доверять вам такую информацию? У вас могут быть только добрые намерения, но крупные компании раньше терпели неудачу, поэтому вы тоже рискуете.
- Не используйте напоминания пароля
- Напоминания пароля не стоят . Их легко угадать по окружению, и вы часто их забываете. Есть более эффективные способы сбросить пароль.
- Всегда предлагайте отправить новый пароль по электронной почте
- Это наиболее безопасный способ получения паролей. Вы должны заставить пользователя изменить пароль после входа в систему с новым паролем.
Я бы сказал, что обеспечение функции забытого пароля по-прежнему будет жизненно важно, поскольку не каждый будет гарантированно хранить все электронные письма (или даже сможет найти их позже) ...
Большинство компаний просто не включают комбинацию имени пользователя и пароля из-за безопасности внешнего почтового клиента. Любое количество пользователей могло подобрать или угадать пароль к учетной записи электронной почты других пользователей, что позволило бы хакеру просматривать электронную почту вашего сайта. Тогда хакер может нанести ущерб и вашему сайту
Как упоминалось в комментариях, вы можете захотеть взглянуть на OpenID. Самый безопасный способ управлять паролями - удалить их.