Алгоритм увеличения пароля
Пользователь вводит пароль: например "123" - нужно увеличить размер пароля до 16 символов. При этом чтобы каждый раз вводя исходный пароль - увеличенный генерировался одинаковый. Тоесть рандом не подоходит.
Ответы (3 шт):
- Пользователь вводит pass = 123
- Генерируем мд5 на основе изначального пароля
- Отсекаем от мд5 генерации определённое кол-во символов, чтобы 123+кусок_отсечённого_мд5_кода = 16 символов
- ...
- Профит :)
Самый простой вариант
DigestUtils.md5Hex("123").substring(0, 16)
В криптографии такое "увеличение" длины пароля называется соль (salt)
По сути это более-менее случайная строка (возможно с участием самого пароля)
По сути его можно хранить в преференсах приложения ибо это не бог весь какой секрет, обладание атакующим солью пароля практически не добавляет бенефитов, поскольку весь смысл соли в противодействии радужным таблицам
С другой стороны ТС говорит об увеличении длины пароля, которая не хранится/нельзя хранить открыто - такая штука называется перец (pepper). В вычислении перца из пароля не вижу особого смысла, поскольку - хэш пароля который принято хранить в БД и так вычисляется из пароля, так что в вычислении перца из пароля нет ни логики, ни дополнительной безопасности.
Исходя из этого, вижу 2 варианта перчения:
- Вычисление перца как хэш из логина (или другой информации о юзере)
- Рандоманя генерация перца и его хранение в шифрованном виде (в качестве ключа можно использовать, например уникальный идентификатор устройства )