Challenge Overview
A reusable Java module is required that will accept a value (string, number, date, time or
timestamp) and alter it to perform data masking on it, that is, returning a value that
resembles the input, but replaces the actual data.
Consider the following scenario in which data masking would be used:
1. A software test team is required to test an application with realistic, but false data
for security purposes.
2. The lead test engineer must write a simple tool to extract data from a production
database system, mask it, and then load it into the test database.
3. The test team is now able to test using realistic data without exposing the real
data.
For detailed information on data masking, please see the Wikipedia entry
http://en.wikipedia.org/wiki/Data_masking
This design provides multiple strategies to perform the masking. For String input, substitution and shuffling can be performed; For numeric types(Integer, Double and BigDecimal) shuffling, random absolute delta and random percentage delta strategies are provided; For date and time types(Date, Time or TimeStamp in java.sql package) only random absolute delta strategy is supported. Among them, random percentage delta strategy is beyond requirements.
Final Submission Guidelines
N/A