Ich habe mehrere ähnliche JSON-Strukturen, die ich in eine SQL-Tabelle für Protokollierungszwecke schreiben möchte. Einige der Felder im JSON enthalten jedoch vertrauliche Informationen, die ich teilweise maskieren möchte, sodass der vollständige Wert im Protokoll nicht sichtbar ist. HierWie empfindliche Werte in JSON für Protokollierungszwecke zu maskieren
ist ein Beispiel für eine der JSON Strukturen:
{
"Vault": 1,
"Transaction": {
"gateway": {
"Login": "Nick",
"Password": "Password"
},
"credit_card": {
"number": "4111111111111"
}
}
}
In diesem Fall ich versuche, die 4111
Kreditkartennummer zu ändern, so dass es wie 4xxx1111
im JSON erscheint. Ich benutze Newtonsoft und habe das JSON in eine JObject
deserialisiert, aber ich bin fest, wie man den Wert maskiert. Ich denke, der Hinweis ist etwas mit JToken
, aber habe es noch nicht herausgefunden. Ich möchte die Lösung so allgemein wie möglich machen, damit sie mit jeder JSON-Struktur funktioniert, die ich abmelden muss.
Jede Hilfe wäre willkommen.
hat die Maskierung während der Deserialisierung zu tun? Warum maskieren Sie es nicht gleich danach? –
Ihre Anforderungen sind ein wenig unklar. Ist das wonach Sie suchen? [Wie kann ich ausgewählte Eigenschaften beim Serialisieren meiner Objekte verschlüsseln?] (Https://stackoverflow.com/questions/29196809). Oder ist es das? [Wie ändert man die Json-Serialisierung von nur einem Feld mit Json.net?](https://Stackoverflow.com/questions/21182758). – dbc
Dies muss bei der Deserialisierung überhaupt nicht gemacht werden. Eigentlich habe ich es in ein JObject deserialisiert. Ich denke, der Hinweis ist etwas mit JToken, aber ich habe es noch nicht herausgefunden. Die Absicht hier ist, dass ich das gesamte Paket nehme und es schließlich in eine SQL-Tabelle einlogge. Aber ich kann nicht einfach die ganze Kreditkartennummer reinschieben. Es ist ein CYA "Nein, das ist was du mir geschickt hast" Art von Log.Außerdem ist dies nur ein Beispiel für eine der Strukturen, andere sind sehr sehr ähnlich, aber nicht ganz gleich, also versuche ich, die Dinge so allgemein wie möglich zu halten. –