Om een login systeem te coderen maken we gewoonlijk gebruik van een of ander
“hashing” algoritme.

Vroeger gebruikten
we hiervoor de defacto webstandaard md5, maar omdat deze “corrupted/collieded”
is zijn we massaal overgeschakeld naar andere hashing algorithme zoals
“sha256”.

Maar ook
deze algorithmen zijn “gekraakt”. Kijk maar eens op de volgende sites en je verliest
alle vertrouwen in encryption op basis van hashing.

https://md5hashing.net/hash/sha256

https://crackstation.net/

Als we echter verder kijken, is de schade niet
onherstelbaar. De engines achter deze sites gaan de hash vergelijken met een
enorme database (15 miljard entries) om het paswoord dat bij de hash hoort te
zoeken. Maar dit systeem werkt enkel voor een “unsalted” hash.

Door het gebruik van het “salting” principe en combinaties van verschillende hashing algoritmes blijf je
(voorlopig) beveiligd.

Hoe gaan we tewerk

function
encrypt($_input,$_salt)

{

$_firstHash
= “md5”;

$_secondHash
= “sha256”;

// eerste hashing

$_encryptedInput = hash($_firstHash,$_input);

$_encryptedSalt = hash($_firstHash,$_salt);

// tweede “salted” hashing

$_intermediateHash = hash($_secondHash,( $_encryptedInput.
$_encryptedSalt);

$_output = hash($_secondHash,(
$_encryptedSalt. $_encryption);

return ($_output);

}

We gebruiken 2 verschillende hashing algorithmen

– eentje voor de eerste hash (input en salt)

– eentje voor de uiteindelijke hash (intermediait encryption en output)

we salten 2 maal

– een maal encryptedInput met encrypted salt en
intermediatHash

– een maal encryptedSalt met intermediatHash en
output

Ook al kent de “hacker” deze manier van werken, het blijft
(voorlopig) onmogelijk om deze encryptie op te kraken, gebruik je per project
andere (niet gecommuniceerde) combinaties voor first en second hashing, dan is
het nog moeilijker.

Veel succes