Pergunta

Estou planejando usar jBCrypt para hashing de senha em uma nova aplicação web, como que é suposto ser o melhor do que eu já li. Como eu nunca usei isso antes Eu estou olhando para se há alguma razão para não usá-lo.

eu tenho este:

  • Eu não tê-lo encontrado no repositório Maven (procurou jbcrypt e bcrypt em mvnrepository.org), que é um infortúnio como eu gostaria de ter meus dependências gerenciados usando um repositório Maven, se possível. Se jBCrypt é o melhor de solução raça para hash de senha que eu teria que configurar o meu próprio repositório local e tê-lo disponível dessa forma. Ou eu só perdeu? Talvez seja em algum lugar?
  • É apenas a versão 0.2, mas talvez seja estável e mesmo assim a razão para um número de versão de baixo tem alguma outra causa?
Foi útil?

Solução

jBcrypt é provavelmente muito bem como um algoritmo de criptografia para as suas senhas; blowfish é relativamente forte. Embora tenha havido algumas falhas de implementação relatados em si Blowfish, eu não encontrar nada muito relatou sobre jBcrypt. Por outro lado, Blowfish não foi testado quase tão fortemente como outros algoritmos têm, e uma rachar estilo de ataque plaintxt conhecido muitas vezes funciona melhor do que o esperado, os geeks cripto surpreendentes.

Então aqui está o que eu sugiro:

  • vá em frente e usar jBcrypt mas proteger seus arquivos de senhas criptografadas, na medida em que você for razoavelmente possível -. Como se estivesse utilizando / etc / shadow em um sistema UNIX
  • Ao contrário da sugestão de Nikhil, eu faria puxar as fontes em seu controle de versão, por duas razões: (1) onde mais você mantê-los, desde que você precisar deles sempre que você construir, e (2 ), porque há sempre a possibilidade a pessoa que faz jBcrypt vai passar para outras coisas, e você não quer encontrar-se deixado pendurado pouco antes de uma entrega (que é inevitável quando você descobrir. ) neste tipo de situação, eu ia colocar as fontes em seu controle de versão como se fossem o seu código e, em seguida quaisquer alterações pode ser inserido como se você tivesse construído uma nova versão si mesmo. Não há necessidade de ser mais complicado do que você normalmente seria.

Outras dicas

No que diz respeito a sua preocupação de que ele não está maduro, eu ia sugerir que você configure seus próprios testes JUnit comparando os resultados de jBcrypt eo mais provado Bcrypt, para ver se você obter os mesmos resultados, e então contribuir aqueles para o projeto jBcrypt.

Mas isso já foi feito:

... vem com um conjunto de unidade JUnit ensaios para verificar o funcionamento correcto de a biblioteca e compatibilidade com o implementação canónica C do algoritmo bcrypt.

Lendo os testes JUnit para ver se eles satisfazer o seu nível de satisfação é onde eu começaria ...

Eu duvido estabilidade vai ser um problema, já que bcrypt si é amadurecer e seus minúsculos, embalagens padronizadas não faz nada extraordinário. Estou feliz com outro invólucro bcrypt de Damien Miller, python-bcrypt , que é apenas na versão 0.1.

Eu estou familiarizado com Maven, mas (alerta heresia!) Duvido que você precisa de controle de versão para um componente tão simples como bcrypt. Para citar o site, as alterações de v0.1 para v0.2 eram "de correção, typo e API ajustes (totalmente compatível)", ea lista TODO está vazio.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top