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

Java BCrypt:有没有办法在数据库中插入已经加密的密码?,java,spring,encryption,bcrypt,Java,Spring,Encryption,Bcrypt,我正在用Spring框架(->Java)构建一个web应用程序。出于测试原因,我创建了一个用户(通过SQL语句)。目前我正在进行密码加密,为此我使用BCyrptPasswordEncoder。我想知道,是否有可能,用编码密码创建第一个用户 换句话说:我可以使用加密密码作为输入,通过SQL语句创建一个新用户吗?如果是,如何输入编码密码 我试过{Bcyrpt}[hash],我在一些网站上读到过,但似乎不起作用 在用户(用户名、密码)值中插入('admin','passwd')首先对术语进行快速说明。

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

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

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


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

首先对术语进行快速说明。密码是用bcrypt“散列”而不是“加密”的。这意味着它是一个单向算法(不能取消散列值)

存储在数据库中的值是散列值(例如,
$2a$10$IEWUJ5KFVNUANBB6M0SAU6A1QBC5BQXAUYC.9FF4CR8XIOHD0DA
),而不是纯文本密码

因此,您只需为测试用户生成一个bcrypt散列以放入INSERT语句。通过
BCryptPasswordEncoder
运行它,或者使用在线bcrypt生成器

例如:

INSERT INTO USER(USERNAME, PASSWORD) VALUES ('admin', '$2a$10$Iewuj5kQFVnUaNbb6M0sAu6a1qbc5bqXAuyc.9fF4cR8xxIOhD0Da')

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

存储在数据库中的值是散列值(例如,
$2a$10$IEWUJ5KFVNUANBB6M0SAU6A1QBC5BQXAUYC.9FF4CR8XIOHD0DA
),而不是纯文本密码

因此,您只需为测试用户生成一个bcrypt散列以放入INSERT语句。通过
BCryptPasswordEncoder
运行它,或者使用在线bcrypt生成器

例如:

INSERT INTO USER(USERNAME, PASSWORD) VALUES ('admin', '$2a$10$Iewuj5kQFVnUaNbb6M0sAu6a1qbc5bqXAuyc.9fF4cR8xxIOhD0Da')

您可以使用
@PostConstruct
注释在spring启动后调用代码,并使用编码密码添加用户。但我鼓励您只编写一个单元测试。:)


您可以使用
@PostConstruct
注释在spring启动后调用代码,并使用编码密码添加用户。但我鼓励您只编写一个单元测试。:)