È un modo sicuro per aumentare il costo di calcolo di md5 o sha1?
public static byte[] increaseHashComplexityMd5(byte[] hash, int loops)
{
for(int loop = 1; loop <= loops; loop++)
{
hash = md5(encryptAes(hash, reverseBits(hash)));
}
return hash;
}
public static byte[] increaseHashComplexitySha1(byte[] hash, int loops)
{
for(int loop = 1; loop <= loops; loop++)
{
hash = sha1(encryptAes(hash, reverseBits(hash)));
}
return hash;
}
- reverseBits inverte ogni bit di ogni byte, quindi 12345678 90111213 diventa 31211109 87654321.
- encryptAes crittografa l'hash con l'hash-con-reverse-bit, risulterà in un risultato di 16 x blocchi.
- md5 / sha1 hash i byte dati.
Il mio obiettivo è rendere più difficile l'uso degli hash bruteforce. Su entrambe le piattaforme (C ++ e Java), ho già le funzioni hash, aes e reverseBits, quindi qualcosa di simile sarebbe l'ideale. Lo farà o è insicuro?