, поскольку я создаю логин для веб-сайта, я хотел бы сохранить автоматически сгенерированный пароль в MySQL безопасным способом, чтобы каким-то образом зашифровать его. Но я не уверен, как совместить автоматическую генерацию с шифрованием пароля.
Я просмотрел много вопросов, но ни один из них не помог мне и не ответил на мой вопрос, учитывая, что он должен генерироваться автоматически. Также я хотел бы решить это элегантным способом без жесткого кодирования и прочего, если это возможно. Я был бы очень рад, если бы кто-нибудь мог помочь мне, так как я новичок, заранее спасибо!
Вопрос:
Как мне автоматически генерировать безопасные зашифрованные пароли, какой тип данных я должен использовать в Java (в настоящее время String), а затем к какому типу базы данных он сопоставлен?
Как мне убедиться, что я могу расшифровать пароль базы данных, чтобы проверить, соответствует ли он, когда кто-то входит в систему?
Пользовательский объект:
@Entity
public class User {
@Id
@GeneratedValue
private Integer user_id;
@Column(unique = true)
private String username;
private String password;
@Enumerated(EnumType.STRING)
private Role role;
//non-Owning (address) side of the OneToOne relationship
@OneToOne(mappedBy = "user")
private RetailStore retailStore;
/**
* Constructor
*/
protected User() {
}
/**
* Constructor
* @param username
* @param role
*/
public User(String username, String password, Role role) {
super();
this.username = username;
this.password = password;
this.role = role;
}
Пользовательский репозиторий:
@Repository
@Transactional
//necessary to be in an transaction to change something in database,
//instead of doing this for every method itself it is declared by
//the annotation @Transactional
public interface UserRepository extends JpaRepository<User, Long>{
}