本博客已经迁移至自建wordpress点此访问
OFBiz 默认采用 SHA 加密,并且给了随机长度的盐,在登录的时候,拿用户输入的密码加密后,和数据库的密文进行比对,密码有 2 中情况,一种是 {SHA}开头的系统默认密码,一种是 $SHA$ 开头的用户修改密码
- {SHA}开头的密码,校验方法为,例如 {SHA}b21985b2b0ff043b88af6606ef46d19379e0d853:
- 把用户输入的密码直接用 SHA 加密
- 把得到的 byte 字节数组转换成 16 进制
- 把得到的 16 进制支付串和数据库中的密文比对(不包含 {SHA})
- $SHA$开头的密码,校验方法为,例如 $SHA$QTrjOV5Y0$JcuATekEKOYp6TSvM8jifQU3Q4Y
- 这种密码,按 $ 符号分割,第一段是加密方式,第二段是 盐(salt),第三段是密文
- 按照第一种方法取到 salt,按照 用户输入的密码和 salt 用 SHA 加密获取到 byte 字节数组
- 然后将 byte 字节数组用 BASE64URL 安全的方式转换成字符串
- 把字符串和数据库密文对比