Um mein Passwort zurückzusetzen, möchte ich dem Benutzer einen Link zu site/account/{hash} senden, wobei {hash} ein Hash des Benutzerpassworts und ein Zeitstempel ist.
Ich habe den folgenden Code nur die E-Mail Hash und eine lesbare der Verbindung:Erzeugen eines dynamischen Passwortrücksetzlinks
String check = info.mail;
MessageDigest md = MessageDigest.getInstance("SHA-1");
String checkHash = Base64.encodeBase64String(md.digest(check.getBytes()));
if(checkHash.equals(hash)){
return ResponseEntity.ok("Password reset to: " + info.password);
}else{
return ResponseEntity.ok("Hash didn't equal to: " + checkHash);
}
Das Problem ist, dass, wenn ich das Base64 konvertieren kann es umfassen/Zeichen Was wird Schlamassel meine Links und Überprüfung der Hash. Ich kann nach dem Hashing einfach alle unerwünschten Zeichen durch etwas anderes ersetzen, aber gibt es eine andere Möglichkeit, dass Ihr Hash nur einen bestimmten Teil von Codes enthält?
Auch ich weiß, die Rücksendungen werden immer noch unsicher gesendet, aber das ist nur zum Testen und Debuggen.