TransWikia.com

Солирование паролей пользователей

Stack Overflow на русском Asked by Helen on January 3, 2021

Есть таблица с пользователями, в колонке хранится зашифрованный пароль. Я хочу, чтобы каждый пользователь имел свою соль, а не общую, для лучшей безопасности. Как это лучше реализовать? Иметь дополнительную колонку для солей, или сделать какую-нибудь функцию для генерации уникальной соли? Я не хочу использовать функцию, т.к. тут трудности что брать за параметр (имя (меняется), дату регистрации (может быть общая), id – слишком простое значение). Подскажите у кого есть опыт.

One Answer

дополнительная колонка для соли.

https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#salting

Имхо, соль не обязательно должна быть уникальной, т.е. не нужно по ней создавать уникальный констрейнт. Куда важнее ее случайность. Генерировать соль лучше всего безопасным генератором случайных чисел. Например:

static final SecureRandom PRNG = new SecureRandom();
static final int SALT_SIZE = 16; // length of your salt column

// ...

byte[] salt = new byte[SALT_SIZE];
PRNG.nextBytes(salt);

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

Answered by Ramiz on January 3, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP