O problema que eu queria ter falado antes diz respeito à política de senhas padrão pras instâncias do Mastodon.
Vou apresentar primeiro o problema, para então explicar por que é um problema e como o Mastodon trata isso pessimamente.
A questão é - se você tenta colocar uma senha mais longa que isso, dá erro.
Quem faz isso não entende ou não se importa com a segurança do usuário, o que é péssimo de qualquer jeito.
Pelo que eu pude ver, o Mastodon usa o bcrypt, um dos melhores e mais recomendados algoritmos de hash, para criptografar as senhas dos usuários. O bcrypt, então, tem um limite de 72 bytes, isso é fato. E o que fazer com isso?
Aí você me pergunta: por que então não usamos direto o sha256?
Pior de tudo: eles nem entendem o que significa esse limite do bcrypt de 72 bytes, e deixam bem claro isso na própria validação.
O problema é que a limitação do bcrypt se dá sobre os BYTES, não sobre os CARACTERES.
Vem entender mais a diferença:
Isso permite uma internacionalização incrível, já que não se restringe a caracteres de uma só língua (como codificações como a ASCII fazem).
E o Mastodon não entende isso.
Porém, como a validação do Mastodon verifica caracteres, não bytes, essa senha é tratada como se fosse aceita.
O Mastodon aceita, porque tem menos de 72 caracteres. Mas "á" codificado em UTF-8 resulta em 2 bytes, então essa senha acabaria com 100 bytes, mais alto que o limite do bcrypt.
Eu vou logar colocando a senha de 50 caracteres e vai funcionar, eu não vou nem perceber o que aconteceu.
E eu nem teria me tocado.
blog.caelum.com.br/dicas-politica…