Pregunta

Estoy buscando un algoritmo de cifrado unidireccional simple y no patentado, preferiblemente en c.Me gustaría usarlo para validar contraseñas.

¿Fue útil?

Solución

SHA-1 y el resto de su familia fueron patentados por el gobierno de EE.UU., que "ha liberado la patente bajo una licencia libre de regalías".Muchas implementaciones de dominio público se puede encontrar a través de Google. :-)

Otros consejos

El nombre correcto para "algoritmo de cifrado unidireccional" es "algoritmo de hash" (te refieres a una forma de "codificar" una contraseña para que nunca se pueda recuperar, ¿verdad?)

No utilice md5 en aplicaciones modernas; desde 2004 se han producido ataques exitosos contra él (consulte http://www.doxpara.com/md5_someday.pdf para referencias).Utilice la familia SHA.

De hecho, usar un hash no es suficiente.deberías usar un sal para limitarlos y una técnica más avanzada como bcrypt limita las posibilidades de adivinar la contraseña

solo usa la función crypt(3)

aquí esta la fondo

SHA-1 parece una buena sugerencia o, si cree que SHA-1 está a punto de ser descifrado, uno de la familia SHA-2.

Es posible que sienta que MD5 no es lo suficientemente "seguro".

MD5 me ha ido bien hasta ahora.

MD5 y SHA512 (u otra variante SHA-2) tienen vulnerabilidades teóricas identificadas.No creo que todavía se haya demostrado que SHA esté roto, pero existe la posibilidad.Whirlpool es un algoritmo hash libre de regalías que (hasta ahora) no ha mostrado ninguna debilidad.Esta página tiene un enlace a la implementación de referencia de C.

¿Por qué MD5 o SHA1 no te funcionan?

/Alano

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top