2016-12-28 4 views
0

Ich möchte Windows-Benutzernamen wie einen Schlüssel verwenden, um einen Text zu entschlüsseln und zu entschlüsseln.JAVA - Verschlüsseln eines Textes mit Windows-Benutzernamen in AES 128

Aber wenn ich versuche, ist der Schlüssel zu kurz: Ungültige AES-Schlüssellänge: 7 Byte

ich den Schlüssel vor der Verwendung kodieren müssen?

Vielen Dank im Voraus

+0

Haben Sie versucht, den Schlüssel aufzufüllen? –

Antwort

4

Technisch - die wichtigsten Bedürfnisse 128 Bit lang (oder 192 oder 256 Bit) sein. Der einfachste Weg ist die Verwendung von Padding (fügen Sie einige konstante Werte hinzu, um sie auf die erforderliche Länge zu erweitern).

Dieser Ansatz ist HOCH INSECURE, könnten Sie diesen Ansatz als Codierung, nicht als Verschlüsselung betrachten.

Die richtige Verschlüsselung müssten

  • den Schlüssel Geheimnis haben. In der Tat ist dies sehr schwierig zu erreichen, wenn der Code/die Konfiguration auf der Arbeitsstation des Benutzers liegt, aber die Verwendung des Benutzernamens klingt aus der Sicherheitsperspektive als SEHR schlechte Idee. Salzen Sie den Schlüssel. Erstellen Sie einen Verschlüsselungsschlüssel aus einem Kennwort mithilfe von Zufallssalz und einer Hash-Funktion (z. B. PBKDF2).

+0

Zusätzlich zur Verwendung einer starken KDF verwenden Sie die richtige Anzahl von Iterationen (auch "Kostenfaktor" genannt), um Brute-Force-Angriffe auf den abgeleiteten Schlüssel abzuschwächen - PBKDF2 ist eine gute Wahl, benötigt aber zwischen 10k - 100k Iterationen für gängiges Web Anwendungsbedrohungsmodelle ab Dezember 2016 ([Hardware-Hardwaresysteme können etwa 68 Milliarden SHA-1-Hashwerte pro Sekunde knacken]) (https://gist.github.com/epixoip/a83d38f412b4737e99bbef804a270c40)). Sie sollten Ihre KDF so einstellen, dass sie auf dem Hosting-System performant ist, während die Verzögerung für Angreifer immer noch auftritt. – Andy

+0

Vielen Dank für Ihre Antwort. Sie haben Recht, es ist wahrscheinlich Codierung und keine Verschlüsselung. Aber das Ziel besteht darin, Nachrichten und Einstellungen aus einer Anwendung zu entschlüsseln und zu entschlüsseln. Ich werde Padding den Schlüssel suchen. – user3216533

+0

Danke, ich werde es versuchen. Ich muss nur Text aus einer Datei verschlüsseln, um sie mit einer bekannten Software zu verwenden. Und ich kenne den Schlüssel, aber ich habe keinen Erfolg mit der Verschlüsselung ... – user3216533

Verwandte Themen