A method of scrubbing a data set having messages containing both non-personal data and personally identifiable information of users, the method comprising the acts of: loading a message containing both non-personal data and personally identifiable information of the user; loading a scrubber configuration containing a rule set for scrubbing the data set; scrubbing only the personally identifiable information in the message based on the rule set to produce a scrubbed message; and saving the scrubbed message; wherein scrubbing comprises replacing the personally identifiable information with a hash code, the hash code being a unique value generated using a one way hash that represents, but does not identify the user; wherein the message associated with a particular user is hashed with the same hash as the personally identifiable information; wherein the rule set comprises a root parsing rule and child rules for scrubbing the data set; and wherein the act of scrubbing the personally identifiable information in the message based on the rule set to produce a scrubbed message further comprises the acts of: parsing the message into fields based on the root parsing rule; and scrubbing the personally identifiable information in selected fields of the message based on the child rules; the root parsing rule including a delimiter that is used by a scrubbing agent to separate each message into fields or a message identifier that instructs the scrubbing agent to use a predefined parsing algorithm to separate a common message format into fields. loading a message containing both non-personal data and personally identifiable information of the user; loading a scrubber configuration containing a rule set for scrubbing the data set; scrubbing only the personally identifiable information in the message based on the rule set to produce a scrubbed message; and saving the scrubbed message; wherein scrubbing comprises replacing the personally identifiable information with a hash code, the hash code being a unique value generated using a one way hash that represents, but does not identify the user; wherein the message associated with a particular user is hashed with the same hash as the personally identifiable information; wherein the rule set comprises a root parsing rule and child rules for scrubbing the data set; and wherein the act of scrubbing the personally identifiable information in the message based on the rule set to produce a scrubbed message further comprises the acts of: parsing the message into fields based on the root parsing rule; and scrubbing the personally identifiable information in selected fields of the message based on the child rules; the root parsing rule including a delimiter that is used by a scrubbing agent to separate each message into fields or a message identifier that instructs the scrubbing agent to use a predefined parsing algorithm to separate a common message format into fields. parsing the message into fields based on the root parsing rule; and scrubbing the personally identifiable information in selected fields of the message based on the child rules; the root parsing rule including a delimiter that is used by a scrubbing agent to separate each message into fields or a message identifier that instructs the scrubbing agent to use a predefined parsing algorithm to separate a common message format into fields.