Denn wenn ein schlechter Mitarbeiter es gestohlen hat, könnte er sich als Benutzer ausgeben.
Und wenn es nicht hardcoded sein sollte, wo soll es putted sein?
Ich denke, JWT-Authentifizierung zu implementieren.Sollte ein HMAC-Geheimschlüssel nicht fest codiert sein?
Antwort
HMAC geheimer Schlüssel ist ein einfacher Text. Wie bei jedem privaten/geheimen Text sollten Sie es vermeiden, (Hard-Code-) Text als einfache/einfache Zeichenfolge zu speichern, da dies durch Disassemblieren aufgedeckt werden kann.
Also ja, es ist eine gute Sache, irgendwie den geheimen Schlüssel zu verschleiern, zumindest Texttransformation zu tun. Im Allgemeinen können Sie jede Art von Transformation wählen.
Einer der Ansätze besteht darin, die Codierung/Decodierung für die Transformation zu verwenden: Ihr geheimer Schlüssel wird in der Quelle als codierte Zeichenfolge gespeichert und zur Laufzeit dekodiert, wenn dies erforderlich ist. Sie können zum Beispiel XOR-Verschlüsselung von Google vorgeschlagen verwenden:
static String stringTransform(String s, int i) {
char[] chars = s.toCharArray();
for(int j = 0; j<chars.length; j++)
chars[j] = (char)(chars[j]^i);
return String.valueOf(chars);
}
Diese Funktion sollte für die Verschlüsselung und Entschlüsselung verwendet werden, „i“ ist eine beliebige Zufallswert.
- 1. Sollte eine HTTP-POST-Datei base64-codiert sein?
- 2. Sollten Metatags HTML-codiert sein?
- 3. Sollte das nicht "= +" ein Syntaxfehler sein?
- 4. Wie JavaFX-Anwendung dynamisch initialisiert wird, nicht fest codiert?
- 5. onClick w/DOM vs. onClick fest codiert
- 6. Wildfly8.1 DB-Passwort in Standalone.xml fest codiert
- 7. Python-Codierung Problem im Skript, wenn Zeichenfolge nicht fest codiert
- 8. ProgressDialog sollte nicht stornierbar sein
- 9. Sollte ein C++ temporäres konstant sein?
- 10. Wie groß sollte ein Sprachvokabular sein?
- 11. Sollte ein Stack-Objekt vergleichbar sein
- 12. Da ist ein zufälliges 'b', das nicht da sein sollte
- 13. Wird System.Numerics.BigInteger unveränderlich sein? Sollte es sein?
- 14. Pfadkomponente sollte '/' sein
- 15. Sollte `System.IO.Path` konkret sein?
- 16. Sollte ein Software-Service vollständig eigenständig sein oder kann/sollte er Teil einer größeren Komponente sein?
- 17. Sollte CIII gleich sein?
- 18. AES Counter-Modus - Verschlüsselungsbibliothek hat seinen Initialisierungsvektor fest codiert
- 19. Sollte das Prozentzeichen (%) immer HTML-Escape sein?
- 20. SQL-Alchemie ResultProxy.rowcount sollte nicht 0 sein
- 21. Nicht behandelte Ablehnungsgründe (sollte leer sein)
- 22. Sollte Logger privat statisch sein oder nicht
- 23. Hash-Equals verhält sich nicht so wie es sein sollte
- 24. Sollte dieser Fehler behoben sein?
- 25. Wie codiert man ein NSDecimal?
- 26. System.Uri.ToString codiert einige Zeichen nicht
- 27. Sollte meine Sitzungsklasse statisch sein?
- 28. Sollte eine BLL zustandslos sein?
- 29. Sollte dies mehrdeutig sein oder nicht? (implizite Umwandlungen)
- 30. Sollte "constexpr" auch "noexcept" sein?