Как узнать пароль на java

Востановление пароля юзера

Добрый день.
SpringMVC, Hibernate и тд.
Пытаюсь сделать восстановление пароля зарегистрированного юзера. В базе хранится пароль в виде хеша $2a$10$/74cmg7qU9RWH/zHtmMqUebKk9XV60ZlciSa7m733ADkoDrYtOy.2
Т.е. как я понял отправить его пользователю не могу, т.к. не могу перевести обратно в нормальный вид.
Поэтому на запрос от юзера на смену пароля отправляю ему на почту сылку типа
ttp://localhost:8080/acceptRememberPass?pass=$2a$10$/74cmg7qU9RWH/zHtmMqUebKk9XV60ZlciSa7m733ADkoDrYtOy.2&email=mail@mail.ru
Пройдя по которой он попадает в контролер, где я проверяю на соответствие в базе данному емейлу пароля. Если все ок, то выдаю страницу JSP на смену.
Правильно ли я делаю? Как лучше и правильно сделать?

Востановление пароля юзера
Добрый день! Подскажите пожалуйста, как перенастроить в vbulletin систему восстановления пароля.

востановление пароля по мылу не проходит
Всем доброго времени суток. забыл пороль на введенное мыло ничего не пришло пришлось долго.

Востановление забытого пароля или.
Доброго времени суток! Вчера пытался подключить DLE к MySQl и пробовал различные варианты. .

Востановление пароля к QIP 2012
Нужно востановить пароль к QIP 2012, пароль сохранен в программе, она все время подключалась.

Эксперт Java

ЦитатаСообщение от werrt Посмотреть сообщение

нет. Зачем вы хеш старого пароля и меил отправляете в ссылке? Это security leak. На запрос о ресете пароля, генерируйте токен и шлите этот токен. Примерно так
http://localhost:8080/resetPas. jsdf234lkj
токен должен быть действительным короткое время.
После того как на jsp странице юзер введет новый пароль, шлите запрос на сервер с тем же токеном и выставляйте там новый пароль. После этого инвалидируйте\стирайте токен

чет не очень понимаю как все это делается.
как я понял, поправьте если что.
1) нужно создать репозиторий токенов, я делаю бин и в базе соответсвующую таблицу

@Bean public PersistentTokenRepository persistentTokenRepository(){ JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl(); jdbcTokenRepository.setDataSource(dataSource); // здесь внедрение моей базы данных return jdbcTokenRepository; }

2) далее где-нить по запросу востановления по емейлу:
*получаю пользователя по емейлу из базы.
*для этого пользователя создаю в токен

persistentTokenRepository.createNewToken(new PersistentRememberMeToken("username","series1","само значение токен",date));

3) отправляю пользователю на почту ссылку типа http://localhost:8080/resetPas. =сам_токен

4) на контролере http://localhost:8080/resetPassword? ловлю токен, идентифицирую пользователя и выдаю страницу для смены пароля

Эксперт Java

ЦитатаСообщение от werrt Посмотреть сообщение

нет особой надобности. Токен можно добавить как поле в таблицу юзеров

ЦитатаСообщение от werrt Посмотреть сообщение

откуда у вас взялся PersistentRememberMeToken? Причем он тут?

ЦитатаСообщение от werrt Посмотреть сообщение

на контролере http://localhost:8080/resetPassword? ловлю токен, идентифицирую пользователя и выдаю страницу для смены пароля

посылайте сразу на страницу. Контроллер в данном случае ненужен. На контроллер посылайте сабмит формы смены пароля.

Эксперт Java

werrt, не связан. Читать хз о чем там читать. Просто пойдите и посмотрите как везде работает сброс пароля.

Читайте также:  Python sqlite drop table

Эксперт Java

Эксперт Java

Лучший ответ

Сообщение было отмечено werrt как решение

Решение

мы делали так:
— делается отельная таблица типа (id пользователя, токен, дата создания)
— был таск, который периодически чистил таблицу в соответствии со значением срока валидности токена
— при запросе сброса пароля пользователю на мыло высылалась ссылка тапа . /resetPassword?token=.
— на сервере по токену доставали запись из таблицы, проверяли время валидности и если все ок, то авторизовывали пользователя с ролью ROLE_RESET_PASSWORD, при этом пользователю доступна только страница сброса пароля, где он вводит новый и подтверждение
— после того как пользователь сабмитит новый пароль с подтверждением делается запрос на api типа . /newPassword, который тоже доступен только для ROLE_RESET_PASSWORD
— на сервере проверяется что пароль совпадает с подтверждением и пароль сохраняется для текущего пользователя
— на последнем шаге делается автоматическая авторизация пользователя с его правами учетной записи

Источник

Взламываем пароль методом «Грубой Силы»

Взлом сайта Пентагона методом Brute Force.

Дана библиотека, содержащая защищенную паролем фразу. О пароле известно, что:

  • генерируется новый пароль при каждой инициализации библиотеки;
  • длина пароля от 1 до 5 символов;
  • разрешенные символы в пароле: числа, прописные и строчные буквы английского алфавита.

Известна структура библиотеки:

public class ProtectedBox

Требуется получить защищенную фразу, подобрав правильный пароль. Скачайте библиотеку с парольной фразой и подключите к своему проекту.

Применяем грубую силу

Какие только задачи не поднимаются во время проектирования, тестирования и отладки. Сегодня мы рассмотрим довольно простую с точки зрения алгоритмов задачу — перебор всех возможных паролей из жестко определенных диапазонов, такой подход называется Brute Force.

Нам известно что пароль состоит только из цифр и букв английского алфавита, значит мы можем составить специфический словарь символов и работать с ним. Символы проще всего представить специальным примитивным типом char. Для инициализации словаря будем использовать ArrayList, char в Java соответствует класс Character, поэтому типизуем коллекцию им, кстати, такое перевоплощение в Java называется Autoboxing.

private static List generateSymbols() < Listsymbols = new ArrayList(); for (char c='0'; c

Итак, в нашем словаре оказалось 62 символа. Прикинем возможное количество комбинаций(c), оно будет высчитываться по формуле c=l n , где l-длина словаря, n-число символов.

Расчет показал, что при длине пароля всего в 5 символов, мы получаем почти миллиард комбинаций. В реальной жизни, нужно понимать, что на подбор довольно сложного пароля могут уйти месяцы и годы и возможно стоит поискать другой способ, например перебор по наиболее часто используемым паролям.

Построим класс подбора по аналогии с принципом действия счетного механизма старого счетчика.

Циферблат дискового счётчика

Циферблат дискового счётчика

Счетчик имеет несколько барабанов, барабан проходит по кругу и значения повторяются. Каждый барабан этого счетного механизма пройдя круг, цепляет при помощи переключателя следующий барабан и поворачивает его на 1 деление, все остальные барабаны работают аналогично. Другими словами, в счетчике мы поворачиваем только 1 барабан, а значения всех остальных барабанов меняются автоматом. Так же в этой модели мы имеем возможность считать разом значения со всех баранов. Просто идеальная система для нашего алгоритма подбора паролей!

Читайте также:  Java programming language learn

По аналогии мы создадим класс, который по кругу будет выдавать значения из нашего словаря, класс будет знать о следующем «барабане», эту информацию мы передадим через конструктор. Еще мы снабдим класс методом для переключения значения на следующее. Мы дополним словарь «пустым» значением, т.к. нам необходимо перебрать пароли разной длины. Остается только обеспечить считывание пароля со всех ячеек.

Модель барабанного счетчика очень похожа на шаблон проектирования «Цепочка обязанностей».

package ru.jcup.saa.tasks.keygen; import java.util.List; public class Link < //'-1'- пустое значение private int currentIndex = -1; private Listsymbols; private Link next; public Link(List symbols, Link link) < this.symbols = symbols; this.next = link; >//Переключатель public void next() < currentIndex++; if (currentIndex==symbols.size()) < currentIndex=0; if (next!=null) < next.next(); >> > //Записываем сгенерированный пароль в generateKey public void getKey(StringBuilder generateKey) < if (next!=null) < next.getKey(generateKey); >if (currentIndex>-1) < generateKey.append(symbols.get(currentIndex)); >> >

Осталось написать только управляющий класс.

Апдейт от 06.04.2022
Не прошло и 2х лет, как статья получила фидбек. Мне очень приятно видеть неравнодушие в глазах посетителей) В связи с этим, объявляю официальную ветку комментов.

MAPTbIwKA с гранатой в пух и прах разносит автора бложика

MAPTbIwKA с гранатой в пух и прах разносит автора бложика

Тут могли располагаться шибко умные слова, великие мысли учёных или изречения скромных блоггеров «jcup.ru». Душераздирающий текст, что заставит прослезиться палача с каменным сердцем. Текст, прочтённый всего лишь раз, способный изменить читателя навсегда. Но, на самом деле, нам нужно было чем-то занять блок внизу.

Источник

Java keystore password guessing

An interesting story happened to me not so long ago. I posted an app to Google Market and when it was time to update it, I found that I had lost the key password to sign my apps. The standard way out of this situation was to create a new key, shut down the old app, and upload the new app under a new name in the marketplace. I did not want to do this, and as a result, the application KeystoreBreaker appeared. The application allows you to select a password for keystore under certain conditions with the possibility of distributed calculation. You can specify the set of characters that make up the intended password, and then divide all possible combinations of these characters into non-overlapping groups and bust for each group separately. It can be distribution on several cores within one computer, and distribution on several computers. The essence of the algorithm is that each variant of the password is represented in N-digit number system, which is formed on the basis of the input character set. After that, the entire range from the first to the last character, for example 000000-zzzzzz, can be divided into any number of smaller ranges in which the search is carried out.

Читайте также:  Login & Registration Form

The format for running the utility is as follows:

java -jar KeystoreBreaker.jar

$ java -jar KeystoreBreaker.jar test.jks 0123456789abcdefghijklmnopqrstuvwxyz 000000 zzzzzz 4 Keystore: test.jks Threads: 4 Sequence: 01256789abcdefghijklmnopqrstuvwxyz First password: 000000 Last password: zzzzzz Combinations: 1544804415 Distribution by threads: #0: 000000 - 2000ja #1: 2000ja - 10000j #2: 10000j - 0000jr #3: 0000jr - zzzzzz Processing: #0: wxj000 / 2000ja 0% [ 20735 pwd/s ] #1: zhk0ja / 10000j 0% [ 21327 pwd/s ] #2: fij00j / 0000jr 0% [ 20187 pwd/s ] #3: uxj0jr / zzzzzz 0% [ 20713 pwd/s ] Total: 0% [ 82943 pwd/s ] Time left: 0.05:10:23 

My story with the lost password ended well, in a few days on four 12-core processors, I managed to pick up my password. It helped that I knew what symbols the password consisted of and how long it was.

« Video of Linux Deploy 1.0 Instructions for installing GNU/Linux via Linux Deploy »

Comments

Copyright © 2023 – Anton Skshidlevsky – Powered by Jekyll

Источник

Как можно узнать пароль в файлах .db?

Как можно узнать пароль в файлах .db?
Нужно вот в этом вот разобраться, где тут пароль лежит:

midp-rms X H ъьАвЭяяяя яяяя ( яяяя 8 Н 0.1b5 h N

Можно ли узнать пароль в cookie и как?
Забыл пароль от вк а восстановить уже не получится,однако яндекс браузер автоматически.

Как можно узнать пароль учетной записи?
Как можно безболезненно и незаметно узнать пароль учетной записи? Windows XP

Можно ли узнать пароль?
Доброго всем времени суток! Хотелось бы узнать одну вещь — можно ли(чисто теоретически :)), зная ip.

Как узнать пароль на Wi-Fi?
Всем доброго времени суток. есть такой вопрос — как узнать пароль на WIFI сеть то есть где его.

Веселая задачка)))
если вы знаете имя таблицы(или хотя бы бд) можно попробовать добраться до пароля средствами джава.Но только в том случае если пароль не зашифрован.

Хм, а где мона скачать исходничек или что там надо?
Есть RMC_RC.db и 3 файла с данными RS@1.db, RS@2.db, RS@3.db.
Типа в RS@1.db по-ходу и пароль, тк в 2 остальных файлах другое. Вот.

Как узнать пароль?
Подскажите, как програмно узнать пароль подключенной сети (WiFi)?

Как узнать пароль WI FI?
Походу где то за стеной у соседа есть WI FI но он под паролем. DLink как узнать пароль от.

Как узнать пароль своего wi fi
Добрый вечер уважаемые! У меня возникла небольшая проблемка. Переустановил виндоус на ноут буке.

Wifi как узнать пароль
Всем привет.Проблема вот в чем, хочу узнать пасс от вайфая ( виндовс 8.1) для этого как я помню.

Как узнать пароль от vpn
Windows 7. Существует подключение к интернету через vpn, логин и пароль сохранены. Можно ли как-то.

Как узнать пароль на VBA?
как узнать пароль пользователя при поиощи VBA

Источник

Оцените статью