Einfache Verschleierung string .NET?
Muss ich sende einen string von etwa 30 Zeichen über das internet wird wahrscheinlich am Ende als eine ID in einem anderen Unternehmens-Datenbank.
Während der string selbst nicht identifiziert werden, ich möchte trotzdem es nicht zu sein, erkennbar in keiner Weise.
Was ist der einfachste Weg, um zu verschleiern wie ein string in .NET, so dass es problemlos rückgängig gemacht werden können, wenn nötig?
Wenn es problemlos rückgängig gemacht werden können, dann was ist der Punkt?
Leicht rückgängig zu machen, wenn man weiß wie, kann ich mir vorstellen.
Würden Sie haben eine Liste des ursprünglichen strings, mit denen vor? Wenn ja, schau mal in Hash-algorithmen.
Ich möchte einfach verhindern, dass Menschen, die Einsichtnahme in die Datenbank und sehen Sie die Daten sofort.
Ich würde tun, eine ROT13-transformation ein gutes Beispiel hier: stackoverflow.com/a/18739120/187030
Leicht rückgängig zu machen, wenn man weiß wie, kann ich mir vorstellen.
Würden Sie haben eine Liste des ursprünglichen strings, mit denen vor? Wenn ja, schau mal in Hash-algorithmen.
Ich möchte einfach verhindern, dass Menschen, die Einsichtnahme in die Datenbank und sehen Sie die Daten sofort.
Ich würde tun, eine ROT13-transformation ein gutes Beispiel hier: stackoverflow.com/a/18739120/187030
InformationsquelleAutor Paul Lassiter | 2012-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie wäre es mit etwas klassischen (mit einem modernen twist).
Was natürlich würden Sie verwenden, wie diese
Seine schnelle, Ihr Schlüssel ist nur ein
Int16
und es wird verhindert, dass der flüchtige Beobachter von kopieren und einfügen den Wert aber nicht sicher.- Ich mag das 🙂 sagen, ich war das speichern dieser Zeichenfolge in eine html-Seite und wollte unCeaser und verwenden Sie die Zeichenfolge mit javascript können Sie mir zeigen, wie das funktionieren würde ?
das könnte schwierig sein. Während ich schreiben könnte ein javascript-äquivalent dieser Funktion, eine Kombination von
shift
- und unicode-produzieren könntechar
Werte nicht anzeigen zu echten unicode-code-points.Das ist in Ordnung, wenn die Daten übertragen wie binäre zwischen .Net-Komponenten, aber wenn diese zurückgegeben werden via HTTP an einen unbekannten browser, ich kann nicht sicher sein, was passieren wird. Wenn Sie begrenzen den Bereich von char-Werten in string-und die Größenordnung dershift
würde Sie wahrscheinlich ok sein, aber ich würde geneigt sein, zu finden, einem "Guss" alternative.Jodrell verstanden, Gusseisen alternative gefunden wurde 😉 vielen Dank nochmal.
InformationsquelleAutor Jodrell
Wie etwa:
und Umgekehrt:
solange Sie nichts dagegen haben, einen Anstieg in der Länge der Zeichenfolge
==
terminator das macht mich immer denken, dass muss base64.Können Sie ein bisschen erklären, was diese Verschleierung bedeutet (in der Bezeichnung des bits)?
es tut, was es auf dem zinn sagt: konvertiert den string in base64-encoding, encoding, über die findet man reichlich Dokumentation, wenn Sie suchen. Base64-Codierung ist nicht leicht lesbar durch den meisten Menschen, so dass eine grundlegende Ebene der Verschleierung, aber diese Technik nicht vorgeben, sicher zu sein.
base64 ist viel zu leicht zu erraten, das format
IMHO wenn Sie sich sorgen darüber, ob der Algorithmus kann leicht zu erraten ist, sollten Sie über Verschlüsselung statt obfuscation.
InformationsquelleAutor Joe
Versuchen verschlüsseln, zum Beispiel mit AES, wenn Sie wissen, die encrypt-key auf dem anderen Computer können Sie leicht entschlüsseln gibt es
http://msdn.microsoft.com/en-us/library/system.security.cryptography.aes(v=vs. 100).aspx
Gibt es viele code-Beispiele rund um. Zum Beispiel fand ich diesen Beitrag, indem Sie eine schnelle Suche, auch wenn es nur 128 bit ich denke, es sollte den trick tun
Mithilfe von AES-Verschlüsselung in C#
Das ist zwei-Wege, 'unbreakable' und einfach zu implementieren (im Gegensatz zum schreiben Ihrer eigenen 'encryptor').
Ihre Anwendung-Konfigurations-Dateien wie im asp-zum Beispiel appsettings
Schlüssel hart kodiert werden kann - wenn es sich nur um stoppen Sie die Zeichenfolge wird sichtbar in einem 3rd-party-Datenbank.
die unzerbrechliche behaupten, ist irrelevant, wenn der Schlüssel hartkodiert ist.
InformationsquelleAutor middelpat
War ich inspiriert durch die Antwort von @Jodrell, und hier ist meine alternative version. Der einzige wirkliche Unterschied ist, dass ich den modulo-operator statt if-then-else-Konstruktion.
Und wenn Sie, wie ich, noch nie gehört hatte, von der Caesar-Chiffre vor, hier ist ein link:
https://en.wikipedia.org/wiki/Caesar_cipher
Und ein wenig test-code:
InformationsquelleAutor RenniePet