09-12-2012 12:32 PM
I would appreciate if someone could help in masking data in sas dataset.
Example: I have sas dataset like below
I wanted mask one column in this say customer_name. how can we do that. In case if we encrypt the data is there a way to decrept also.
Thanks in advance... MVK
09-12-2012 11:23 PM
There are lots of algorithm for encoding and decoding .
I pick up the most simple one .It is from JavaEE Tutorial 6 .
The implementation of codeString in CoderImpl shifts the string argument forward in the alphabet
by the number of letters specified in the second argument; any characters that are not letters are
left unchanged. (This simple shift code is known as a Caesar cipher, for Julius Caesar, who
reportedly used it to communicate with his generals.)
I took offset as 4 .
data have; input name $ id $; cards; Arthur 1234 Tom 1234 MikeZ 1234 Matt 1234 ; run; %let offset=4; data encode; set have; do _n_=1 to length(name); substr(name,_n_,1) = byte(mod(rank(char(name,_n_))+&offset,255)) ; end; run; data decode; set encode; do _n_=1 to length(name); substr(name,_n_,1) =byte(mod(rank(char(name,_n_))-&offset+255,255)); end; run;