2017-11-04 4 views
0

Ich bin auf der Suche nach einem Passwort-Hash-Standard, der auf PHP und C++ einfach zu implementieren ist. Ich weiß, dass es BCrypt gibt, aber das ist wirklich nicht so einfach auf C++ zu implementieren. Gibt es Hash-Algorithmen, die in beiden Sprachen einfach zu implementieren sind? Ich suche das, weil ich nicht möchte, dass mein myBB-Forum geknackt wird. Sie verwenden MD5 mit Salz, das ist nicht wirklich so gut.
Es schützt mich nicht davor, geknackt zu werden. Ich weiß das. Aber wenn das Forum kompromittiert ist, möchte ich einen sicheren Hash, damit sie die Passwörter nicht so leicht knacken können.C++ und PHP gemeinsamen Passwort Hash-Standard

+3

sollten Sie 'ändern encryption' zu' hash '. Verschlüsselt kann entschlüsselt werden; Hashed ist ein Weg. – chris85

+0

Verschlüsselung/Hashing verteidigt Sie nicht gegen Ihr Forum, "geknackt" zu werden. Es verhindert nur, dass Dritte alle Passwörter sehen können, sobald Ihre Daten kompromittiert sind. (Was natürlich immer der Fall sein sollte) – Ivar

+0

https://www.codeproject.com/Articles/704865/Salted-Password-Hashing-Doing-it-Right ist eine gute Lektüre. –

Antwort

-2

Ich schlage stärkere Algorithmen wie SHA-256 oder Blowfish vor. Selbst mit MD5-Salz ist es neben ihnen schwächer.

Verwenden Sie für die von Ihnen verwendeten Algorithmen jedoch Salz in Ihren Eingaben. Sie können beide in PHP und C++ effektiv und einfach verwenden.

+1

SHA-256 ist ein Allzweck-Algorithmus und es soll nicht für das Password-Hashing verwendet werden. Es ist zu schnell. Aber ich werde in Blowfish schauen – Fomic

+1

Auch ich denke, dass Blowfish ist eine Verschlüsselung/Entschlüsselungsmethode nicht ein Passwort Hashing-Algorithmus. Lerne aus meinen Fehlern ^^ – Fomic

1

Einfache Antwort: Verwenden Sie einfach libsodium an beiden Enden, dann crypto_pwhash_str() in C/C++ und sodium_crypto_pwhash_str() in PHP. Dies gibt Ihnen Argon2id, was bei geeigneten Kostenfaktoren besser ist als bcrypt.

Auch wenn es verlockend, zu „realisieren“ Krypto selbst, sie ist besser dran, muss eine Standard-Implementierung wie libsodium, libcrypto (Teil von OpenSSL) unter Verwendung usw.