Skrivet av 2infinity:
Edit: Det som är tanken är att ett lösenord som skiljer sig med endast ett tecken från ett gammalt kommer vara helt annorlunda när dubbelsalten är klar vilket borde resultera i hög säkerhet.
Det du beskriver kallas "the avalanche effect". Häftigt att du själv listat ut att det är en högst önskvärd egenskap!
Det är inte helt klart hur din lösning är tänkt att fungera, t ex är det du beskriver endast genereringen av saltet eller är slumptalen en del av saltet? Oberoende av det, lite feedback:
Det positiva med din lösning är att (i) den skapar unika salt (förutsatt att din generering av slumptal är OK) för varje lösenord och (ii) du expanderar lösenordet med saltet vilket kräver mer minne vid beräkning. Utöver det så tillför din lösning inte mycket utöver att slumpa fram ett stort nog salt. Ett unikt slumpat salt, som sparas bredvid resultatet av att hasha saltet med lösenordet, är ett absolut minimum för att skydda lösenord i en databas. Dock, som påpekades tidigare i tråden, använd inte MD5. Om du måste använda en snabb hash-algoritm så använd någon i SHA-2 familjen.
Det är bättre att använda bcrypt, som gör att mängden beräkningar som behövs för att beräkna "hashet" av ett lösenord blir större. Det bästa du kan göra är att använda scrypt, som gör att mängden beräkningar och minne som behövs för att beräkna "hashet" av ett lösenord blir större. Du kan läsa om scrypt här: http://www.tarsnap.com/scrypt.html. Jag rekommenderar varmt en presentation kring ämnet, som du hittar här: http://www.tarsnap.com/scrypt/scrypt-slides.pdf.
För att komma tillbaka till din lösning. Den har både mer beräkningar och krav på minne än de flesta standard lösningar, vilket är bra! Om du förstår dig på resonemanget så vet du mer än de allra flesta om det här ämnet. Jag skulle rekommendera att du använder någon av de beprövade metoderna och kollar på scrypt.