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