BCrypt:有没有办法在数据库中插入已经加密的密码?

Dre*_*ana 4 java encryption spring bcrypt

我正在使用 Spring Framework(-> Java)构建一个 Web 应用程序。出于测试原因,我创建了一个用户(通过 SQL 语句)。目前我正在研究密码加密,为此我使用 BCyrptPasswordEncoder。我想知道是否可以使用编码密码创建第一个用户。

换句话说:我可以通过 SQL 语句使用加密密码作为输入来创建新用户吗?如果是这样,我该如何输入编码密码?

我尝试过 {Bcyrpt}[hash],我在一些网站上读到过,但这似乎不起作用......

插入用户(用户名,密码)值('admin','passwd')

Mic*_*ick 5

首先快速澄清术语。密码是用 bcrypt“散列”的,而不是“加密的”。这意味着它是一种单向算法(您无法取消该值的哈希值)。

数据库中存储的值是哈希值(例如$2a$10$Iewuj5kQFVnUaNbb6M0sAu6a1qbc5bqXAuyc.9fF4cR8xxIOhD0Da),而不是纯文本密码。

因此,您需要为测试用户做的就是生成一个 bcrypt 哈希值并将其放入 INSERT 语句中。要么运行它BCryptPasswordEncoder,要么使用在线 bcrypt 生成器。

例如:

INSERT INTO USER(USERNAME, PASSWORD) VALUES ('admin', '$2a$10$Iewuj5kQFVnUaNbb6M0sAu6a1qbc5bqXAuyc.9fF4cR8xxIOhD0Da')
Run Code Online (Sandbox Code Playgroud)