Frage

Was ist der beste Weg, einen Wert in einer INI-Datei zu verschlüsseln?

Verschlüsselungs-/Entschlüsselungsschlüssel verwenden?

War es hilfreich?

Lösung

Für welchen Zweck?Sicherheit?

Wenn Sie beispielsweise versuchen, ein Klartext-Passwort zu verschlüsseln, sollten Sie wahrscheinlich eine PKI-Implementierung verwenden.Denken Sie jedoch daran, dass dann die Schlüsselverwaltung zu Ihrem Problem wird.Das bloße Verschlüsseln des Werts ist kein Allheilmittel, da sich die INI-Datei höchstwahrscheinlich im Dateisystem des lokalen Hosts befindet, vermutlich am gleichen Ort, an dem Sie Ihr Schlüsselpaar speichern müssen.Sie haben das Problem einfach eine Ebene tiefer abstrahiert.Sie können Ihr verschlüsseltes Passwort nicht direkt lesen, aber wenn sie den Ort finden, an dem Sie Ihr Schlüsselpaar speichern, können sie es selbst entschlüsseln.

Andere Tipps

Mit welchem ​​Effekt?Was möchten Sie schützen oder verschleiern?

Sie könnten einen der vielen bidirektionalen Schlüsselverschlüsselungsalgorithmen verwenden, die für alle Plattformen verfügbar sind ...Aber fragen Sie sich, warum Sie es überhaupt tun.Wenn Sie versuchen, etwas hacksicher zu machen, werden Sie mit der Verschlüsselung von INI-Strings wahrscheinlich nicht so weit kommen, denn sobald Sie die INI entschlüsseln, befindet sich der String im Speicher.Und der Schlüssel zum Entschlüsseln befindet sich in Ihrem Programm.Kinderspiel zum Aushacken.

Wenn Sie nur verhindern möchten, dass Leute eine Einstellung einfach bearbeiten, fügen Sie sie nicht in eine INI ein.Wählen Sie ein Binärformat, das der Benutzer nur schwer bearbeiten kann.

Für den persönlichen Skripte, wo ich eine E-Mail-Passwort haben, verwende ich TinyEncryption.

Ich werde den Autorisierungsschlüssel im Code setzt sich. Dies verhindert, dass ein lässigen Schnüffler aus nur durch Surfen und E-Mail Passwort Abholung.

Der Code ist ziemlich einfach zu. Hier ist es in Python.

import random
import base64
def tinycode(key, text, reverse=False):
    "(de)crypt stuff"
    rand = random.Random(key).randrange
    if reverse:
        text = base64.b64decode(text)
    text = ''.join([chr(ord(elem)^rand(256)) for elem in text])
    if not reverse:
        text = base64.b64encode(text)
    return text

Für weitere verbesserte Sicherheit, verwende ich PGP, aber Sie haben dann für einen Autorisierungsschlüssel aufzufordern. Es gibt keine Einrichtung, die perfekt ist, es hängt davon ab, was Ihre Bedürfnisse sind.

Sie können alle Standard-Verschlüsselungsalgorithmus mit einem Schlüssel verwenden, und vielleicht den Wert mit einem zufälligen padding Präfix vor der Verschlüsselung.

Doch wo planen Sie dann den Schlüssel zu speichern? Oder wollen Sie den Benutzer erhalten ein Passwort einzugeben und einen Schlüssel aus, dass ableiten? Wenn nicht, dann wäre es ziemlich sinnlos, den Wert zu verschlüsseln.

Sie benötigen es zu entschlüsseln? Wenn nicht, können Sie einfach Salz und Hash es.

Wenn Sie es entschlüsseln wollen, dann Id sagen Sie die Sprache als auch vielleicht angeben sollen.

MD5-Hash

Sie dann vergleichen Hash ( "Passwort") mit dem ini_file.password Hash

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top