เอี่ยมพยายามเข้ารหัสเฉพาะค่าคีย์ของวัตถุ json โดยใช้แอป nodejs ฉันกำลังใช้โมดูลโหนด crypto ฉันจะส่งผ่านวัตถุ json (อาจเป็นแบบพื้นฐานหรือซับซ้อนก็ได้ ภายในค่าที่เราสามารถมีคู่ของค่าคีย์ได้อีกครั้ง) จากนั้นเป็น การตอบสนอง เราควรได้รับ json เดียวกันในรูปแบบเดียวกันกับที่เราให้ไว้ในตอนแรก แต่ค่าคีย์ควรถูกเข้ารหัส ในโค้ดของฉัน ฉันมีฟังก์ชันเข้ารหัสซึ่งจะเข้ารหัสข้อมูล ที่นี่ฉันควรส่งคีย์ค่าไปยังฟังก์ชันเท่านั้น ซึ่งฉันสามารถทำได้และรับข้อมูลที่เข้ารหัสกลับมา ฉันใช้สำหรับแต่ละรายการ เช่น for(var exKey ใน JsonData) และส่งผ่าน แต่ละค่าคีย์ที่จะทำงาน และจัดเฟรมกลับเป็นรูปแบบ json อีกครั้งโดยใช้โค้ดนี้
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+"}";
นี่เป็นเรื่องปกติถ้าเราใช้ json พื้นฐาน แต่ถ้าเราใช้ความซับซ้อน (เช่นภายในคู่ค่าคีย์อื่น ๆ ) สิ่งนี้จะไม่ทำงานเนื่องจากเราต้องดูว่าเรามีฟังก์ชันดังกล่าวและวนซ้ำหรือไม่ ดังนั้นฉันจึงทำการเปลี่ยนแปลง รหัส.
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;
}
ตอนนี้การใช้ฟังก์ชันฉันสามารถวนซ้ำและเข้ารหัสคีย์ค่า จากนั้นฉันปลอบใจคีย์และค่าโดยการเพิ่ม ",:,{ ตัวอย่างเช่น ฉันกำลังส่ง json เป็น:
{"brokerLimit": "50", "traderType": {"insurer": "john", "cover": "basic" }, "isSplitPayment": ใช่"} จากนั้นบนคอนโซล ฉันจะได้รับ
"brokerLimit": "51de" "traderType":{ "insurer::0e81dc9e" "cover::068fc79922" "isSplitPayment::1d8bc7"
ดังนั้นฉันจึงสามารถเข้าไปข้างในและเข้ารหัสค่าคีย์ได้ .. แต่ตอนนี้สิ่งสำคัญคือฉันต้องการได้รับสิ่งนี้เป็นการตอบกลับในรูปแบบ json เช่น
{"brokerLimit": "51de" "traderType": {"insurer": "0e81dc9e" "cover": "068fc79922" }, "isSplitPayment": "1d8bc7"}
ดังนั้นฉันต้องเก็บค่าคีย์ที่เข้ารหัสไว้ในตัวแปร และฉันต้องเพิ่ม ",:,} เพื่อให้เป็นรูปแบบ json ที่นี่ฉันกำลังเผชิญกับปัญหา หากคีย์มีคุณสมบัติใน json ค่าคีย์จะกลับไป ในการทำงาน ตอนนั้นฉันคิดว่าเราต้องบันทึกตัวแปรชั่วคราว จากนั้นเราต้องเพิ่มตัวแปรโกลบอลตัวอื่น จากนั้นจึงเพิ่มตัวแปรโกลบอลต่อไป...แต่ฉันไม่สามารถแก้ไขตรรกะได้..ใครก็ได้ช่วยฉันด้วย ในนี้..หวังว่าคำถามของฉันจะชัดเจนหากไม่ตอบฉัน
algorithm
คืออะไร? - person zaph   schedule 23.08.2016