Estoy implementando bcrypt para Java como se encuentra aquí . Antes de que tenga lugar el hash real, la línea 455 de esta implementación toma la contraseña de cadena sin formato y la transforma en una matriz de bytes como tal:
passwordb = (password + (minor >= 'a' ? "passwordb = (password + (minor >= 'a' ? "%pre%0" : "")).getBytes("UTF-8");
0" : "")).getBytes("UTF-8");
Entonces, cuando minor >= 'a'
, como siempre es cierto para esta implementación (¿asumo que es un identificador de versión?), entonces
se concatena al final de la contraseña antes de su transformación en bytes. %code%0
0
¿Qué propósito proporciona agregar %code% a la contraseña?