如何解密存储在数据库中并由 jhipster 网络应用程序生成的密码?

0 jhipster

我的 application-dev.yml 文件中有这个:

security:
authentication:
  jwt:
    # This token must be encoded using Base64 and be at least 256 bits long (you can type `openssl rand -base64 64` on your command line to generate a 512 bits one)
    base64-secret: ODNiNWQ5NmY0M2ZiNTg3MDI1YjA2N2Y1OGVjMTY1ZWM3NzkxZTdlN2FiZGYyYzM2ZTljNTVkZGZiZmQzZDFlMTJhODNkMTEyNzM5NmY0MDMzZmI4Y2E2YjFkNzg1MDM2NzAwNDhhZDI1NGVjOGIyMDNlMGU3ZDZhNmQyZDk1YWY=
    # Token is valid 24 hours
    token-validity-in-seconds: 86400
    token-validity-in-seconds-for-remember-me: 2592000
Run Code Online (Sandbox Code Playgroud)

我想解密存储在 postgres 数据库中的用户密码之一,例如:$2a$10$j8S5d7Sr7.8VTOYNviDPOeWX8KcYILUVJBsYV83Y5NtECayypx9lO我该怎么做?

use*_*296 6

您无法解密密码哈希,它们使用 10 轮BCrypt(Spring 框架默认配置)进行加密。JWT 秘密与密码加密无关。

如果用户丢失了他的密码,他应该请求重置密码,并会通过电子邮件收到一个重置链接。

如果问题是您在开发环境中丢失了用户的密码,那么使用相同的 10 轮 Bcrypt 算法(甚至可以在线完成)加密新密码并password_hash直接替换数据库中的密码可能会更快.

另外,请生成一个新base64-secret密钥,不要按照jhipster 文档中的说明与任何人共享。