SAS MD5哈希

3

我希望使用MD5算法对SAS数据集中的敏感信息(1个字段)进行哈希。但是,哈希后的数据看起来很奇怪,即所有特殊字符都被替换了。这是使用哈希函数的正确方式吗?

我的代码:

data md5; 
set sashelp.class (obs=2); 
md5 = md5(strip(name)); 
keep name md5; 
put _all_;
run; 

我的输出:

Name=Alfred Sex=M Age=14 Height=69 Weight=112.5 md5=�p?ޞ��\�rT]( _ERROR_=0 _N_=1
 Name=Alice Sex=F Age=13 Height=56.5 Weight=84 md5=dH���/�x{�͇!K8 _ERROR_=0 _N_=2
1个回答

5

没错,你只需要使用十六进制格式$hex32。 使其可读。MD5是128位哈希,但有一种更好的哈希称为SHA256(),它是256位哈希。

代码:

data md5; 
set sashelp.class (obs=2); 
format md5 $hex32.; 
md5 = md5(strip(name)); 
keep name md5; 
put _all_;
run;

输出:

 Name=Alfred md5=86703FDE9E87DD5C0F8E1072545D0128 
 Name=Alice  md5=64489C85DC2FE0787B85CD87214B3810

注意:
您也可以在字符串中添加SALT或PEPPER值以增强安全性;这些字符串将被连接到您的字符串的开头或结尾。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接