Genere hash Blowfish compatible multiplataforma (PHP/Ruby)
Frecuentes
Visto 466 equipos
1
En PHP estamos generando algunos hashes de contraseña usando el cripta() para producir un hash de pez globo.
<?php $hash = crypt("secure password", '$2a$10$ ... salt here ... $');
Veo que ruby tiene Cadena # cripta, pero el resultado que obtenemos es completamente diferente (hash mucho más corto). Mirando la página del manual para crypt (3)
, solo algunas distribuciones de Linux agregan soporte para Blowfish a glibc, así que asumo que Ruby no lo admite.
Ahora busqué en Google y encontré el crypt
gem, pero parece estar codificado para hacer 2^16 ciclos en lugar de los 2^10 que estamos usando. También me da una excepción en Ruby 1.9.3:
Crypt::Blowfish.new("abc").encrypt_block("foo")
TypeError: can't convert String into Integer
from /Users/chris/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/crypt-1.1.4/crypt/blowfish.rb:47:in `|'
¿Alguien sabe cómo podemos producir los mismos hashes de pez globo en Ruby que hemos generado en PHP?
1 Respuestas
1
La gema BCrypt hace lo que necesitamos:
BCrypt::Engine.hash_secret("bob", "$2a$10$ ... salt here ...")
Respondido 02 Jul 12, 09:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php ruby blowfish crypt or haz tu propia pregunta.