Emil.s skrev:
Om jag väljer lösenordet "ubuntu", och salten är "debian", skickas då lösenordet till tex "crypt" som "ubuntudebian" då eller?
Du är på rätt spår, men det är inte riktigt så enkelt. $1$-algorithmen är som
sagt md5-baserad. Den fungerar ungefär så här:
Vi börjar med <pass>, <salt> och den vanliga md5hash-funktionen (md5sum).
<H0> = md5(<pass>$1$<salt><annat>), 8 bitar per tecken
[<annat> är en sträng som beror på md5(<pass><salt><pass>) och <pass>]
<H1> = md5(<H0><pass>)
<H2> = md5(<pass><salt><pass><H1>)
<H3> = md5(<H2><salt><pass><pass>)
<H4> = md5(<pass><pass><H3>)
<H5> = md5(<H4><salt><pass><pass>)
<H6> = md5(<pass><salt><pass><H5>)
<H7> = md5(<H6><pass><pass>)
...
<H1000> = md5(<pass><pass><H999>)
[<Hn> byter plats med det yttersta <pass> varannan gång, <salt> skippas]
[var tredje gång, det mellersta <pass> skippas var sjunde gång]
Tillslut har vi $1$-hashen: $1$<salt>$<hash>
[<hash> är <H1000> utskriven i en 64-bas (6 bitar per tecken)]
Den riktiga koden, som intressant nog är beer-ware, återfinns här:
http://www.freebsd.org/cgi/cvsweb.cgi/s ... text/plain
Med ett blankt lösenord och utan salt reduceras det hela till att ta
md5summan av strängen "$1$" itererat 1001 gånger, vilket ger oss hashen
"$1$$qRPK7m23GJusamGpoGLby/" som uppenbarligen inte kräver något lösenord.
Emil.s skrev:
Och kan man ändra vilken typ av hash som används? SHA-256 eller något...
Det finns flera olika, men jag vet inte alls vilka som fungerar i linux. I OpenBSD
finns t.ex. $2$ som är en hash-algorithm som bygger på Blowfish och använder
128 bitar salt för varje 184 bitar lång hash.