javascript - Maskerar känslig information i node
Jag vill maskera/dölja endast JSON-värden, inte nycklar. Till exempel:-
myObject = {"Name":"value1","Phoneno":"545454545445"}
Output should be like below:
myObject = {"key1":"********","key2":"*****"}
Kan du snälla berätta för mig hur vi kan göra detta i nodejs? Tack.
Svar #1
Använd maskdata npm-modul: https://www.npmjs.com/package/maskdata
Det tillhandahåller funktioner för att,
- Maskera telefonnummer
- Masklösenord
- Maskerad e-post
- Maskera JSON-fält
- Maskkortnummer
- Dölj ett värde från strängen
I ditt fall vill du maskera JSON-fält. Använd,
const maskJSONOptions = {
// Character to mask the data. Default value is '*'
maskWith : "*",
// Field names to mask. Can give multiple fields.
fields : ['password', 'firstName'] // It should be an array
};
const obj = {
password : "IKnowNothing",
firstName : "Jon",
lastName : "Snoww"
};
const maskedObj = MaskData.maskJSONFields(obj, maskJSONOptions);
//Output : { password: '************', firstName: '***', lastName: 'Snoww' }
Jag hade också problem med att maskera datan. Så jag publicerade detta npm-modul.
Du kan också maskera de inbäddade objekten med maskdata-modulen.
t.ex :
const MaskData = require('./maskdata');
const maskJSONOptions = {
// Character to mask the data. Default value is '*'
maskWith : "*",
// It should be an array
// Field names to mask. Can give multiple fields.
fields : ['level1.level2.level3.field3', 'level1.level2.field2', 'level1.field1', 'value1']
};
const nestedObject = {
level1: {
field1: "field1",
level2: {
field2: "field2",
level3: {
field3: "field3",
}
}
},
value1: "value"
};
const maskedObj = MaskData.maskJSONFields(nestedObject, defaultJSONMaskOptions2);
//Output : {"level1":{"field1":"******","level2":{"field2":"******","level3":{"field3":"******"}}},"value1":"*****"}
Svar #2
Kanske skulle du tycka att biblioteket https://github.com/tcdl/json-masker är användbart, vilket tillåter dig att göra detta:
const mask = require('json-masker');
const myObject = {"Name": "value1", "Phoneno": "545454545445"};
const masked = mask(myObject); // will produce:
// {"Name": "xxxxx*", "Phoneno": "************"}
