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,

  1. Maskera telefonnummer
  2. Masklösenord
  3. Maskerad e-post
  4. Maskera JSON-fält
  5. Maskkortnummer
  6. 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": "************"}