Iam versucht, nur den Schlüsselwert von JSON-Objekt mit NodeJs-App.Iam mit Krypto-Node-Modul zu verschlüsseln.Ich werde JSON-Objekt übergeben (es kann einfach sein oder komplex, z. B. innerhalb eines Wertes können wir wieder ein Schlüsselwertpaar haben), dann sollten wir als Antwort dasselbe json im gleichen Format bekommen, das wir anfangs geben, aber der Schlüsselwert sollte enctyped sein. In meinem Code habe ich eine Verschlüsselungsfunktion, die die Daten verschlüsseln wird. Hier sollte ich nur den Schlüsselwert an die Funktion übergeben, die iam in der Lage ist, verschlüsselte Daten zu verwenden und zurück zu bekommen. Ich benutze für jedes ie für (var exKey in JsonData) und Übergeben Sie jeden Schlüsselwert an die Funktion.Und wieder Framing es wieder in JSON-Format mit diesem Code.Verschlüsseln Sie nur JSON-Schlüsselwert und erhalten Sie die Antwort des gesamten JSON-Objekts mit Schlüsselwert verschlüsselt
var JsonData=JSON.parse(req.headers.jsondata);
var enc=null;
for(var exKey in JsonData) {
var encryptData=encrypt(JsonData[exKey]);
if(enc!= null)
enc= enc+","+ '"'+ exKey+'"'+":"+encryptData;
else
enc="{"+'"'+exKey+'"' +":"+encryptData;
}
enc=enc+"}";
Das ist in Ordnung, wenn wir grundlegende json.But verwenden, wenn wir komplexe verwenden (z. B. innerhalb KEYVALUE andere Schlüsselwertpaar), wird dies nicht funktionieren, da wir sehen müssen, ob wir solche und Iterierte haben Funktion.So habe ich Änderungen an Code.
function iterate(JsonData)
{
for(var exKey in JsonData) {
if (JsonData.hasOwnProperty(exKey)) {
if(typeof JsonData[exKey]=="object"){
console.log('"'+exKey+'"'+":"+"{");
iterate(JsonData[exKey]);
}
else
{
var encrypted=encrypt(JsonData[exKey]);
console.log('"'+exKey+'"'+":"+ '"'+encrypted+'"');
}
}
}
function encrypt(text){
var cipher = crypto.createCipher(algorithm,password);
var crypted = cipher.update(text,'utf8','hex');
crypted +=cipher.final('hex');
return crypted;
}
nun die Funktion ich in der Lage, die Schleife zu durchlaufen und die keyvalue verschlüsseln und dann iam den Schlüssel und Wert durch den Zusatz“, tröstend:., { Zum Beispiel, wenn ich vorbei json als:
{"brokerLimit": "50", "trairtType": {"Versicherer": "John", "Cover": "Basic"}, "isSplitPayment": "Ja"} Dann auf Konsole bekomme ich
"brokerLimit": "51de" "HändlerTyp": { "Versicherer": "0e81dc9e" "Bucht r „:“ 068fc79922" ‚isSplitPayment‘: ‚1d8bc7‘
So Iam Lage Looping zu gehen und den Schlüsselwert zu verschlüsseln .. Aber jetzt ist die Sache, die ich dies als Antwort im JSON-Format, dh
erhalten möchten{ "brokerLimit": "51de", "traderType": { "Versicherer": "0e81dc9e", "Cover": "068fc79922"}, "isSplitPayment": "1d8bc7"}
Also ich brauche Um den verschlüsselten Schlüsselwert in Variable zu speichern, muss ich auch ",:," hinzufügen, um es im JSON-Format zu machen. Hier steht Iam vor dem Problem. Wenn der Schlüssel eine Eigenschaft in JSON hat, geht der Schlüsselwert zurück zur Funktion. Zu dieser Zeit denke ich, dass wir in Temp sparen müssen orary Variable und dann müssen wir zu einer anderen globalen Variable hinzufügen und dann weiter zu globalen Variable hinzufügen ... Aber ich konnte nicht die Logik reparieren..Kann jemand mir dabei helfen .. Hoffe meine Frage ist klar.Wenn nicht antworten mich.
Aus Neugier was ist 'Algorithmus'? – zaph
Das Wort, nach dem Sie suchen, ist Rekursion und nicht Iteration. –
@zaph AES-Algorithmus –