Saya mencoba mengenkripsi hanya nilai kunci objek json menggunakan aplikasi nodejs. Saya menggunakan modul simpul kripto. Saya akan meneruskan objek json (bisa berupa dasar atau kompleks, yaitu, di dalam suatu nilai kita dapat kembali memiliki pasangan nilai kunci) lalu sebagai respon kita harus mendapatkan json yang sama dalam format yang sama yang kita berikan pada awalnya, tetapi nilai kuncinya harus dientipekan. Dalam kode saya, saya memiliki fungsi enkripsi yang akan mengenkripsi data. Di sini saya hanya boleh meneruskan nilai kunci ke fungsi tersebut, yang dapat saya lakukan dan mendapatkan kembali data terenkripsi. Saya menggunakan untuk masing-masing yaitu untuk (var exKey di JsonData) dan meneruskan setiap nilai kunci berfungsi. Dan sekali lagi membingkainya kembali ke format json menggunakan kode ini.
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+"}";
Ini baik-baik saja jika kita menggunakan json dasar. Tetapi jika kita menggunakan kompleks (misalnya, di dalam nilai kunci pasangan nilai kunci lainnya) ini tidak akan berfungsi karena kita perlu melihat apakah kita memiliki fungsi seperti itu dan mengulanginya. Jadi saya membuat perubahan pada kode.
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;
}
Sekarang menggunakan fungsi tersebut saya dapat mengulangi loop dan mengenkripsi nilai kunci dan kemudian saya menghibur kunci dan nilai dengan menambahkan ",:,{. Misalnya jika saya meneruskan json sebagai:
{"brokerLimit":"50","traderType": {"insurer":"john","cover":"basic" }, "isSplitPayment":"yes"} Lalu di konsol saya akan mendapatkan
"brokerLimit":"51de" "traderType":{ "penanggung":"0e81dc9e" "cover":"068fc79922" "isSplitPayment":"1d8bc7"
Jadi saya bisa masuk ke dalam loop dan mengenkripsi nilai kuncinya.. Tapi sekarang masalahnya adalah saya ingin mendapatkan ini sebagai respons dalam format json yaitu
{"brokerLimit":"51de","traderType": {"insurer":"0e81dc9e","cover":"068fc79922" }, "isSplitPayment":"1d8bc7"}
Jadi saya perlu menyimpan nilai kunci terenkripsi dalam variabel, juga saya perlu menambahkan ",:,} untuk membuatnya dalam format json. Di sini saya menghadapi masalah. Jika kunci memiliki properti di json maka nilai kuncinya kembali agar berfungsi. Pada saat itu saya pikir kita perlu menyimpan dalam variabel sementara dan kemudian kita perlu menambahkan ke variabel global lain dan kemudian terus menambahkan ke variabel global...Tetapi saya tidak dapat memperbaiki logikanya..Dapatkah seseorang membantu saya dalam ini..Semoga pertanyaan saya jelas. Jika tidak balas saya.
algorithm
? - person zaph   schedule 23.08.2016