SAS MD5 哈希
SAS MD5 Hashing
我想使用 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
没错,您只需应用十六进制格式 $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 值以增加安全性;这些是连接到字符串开头或结尾的字符串。
我想使用 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
没错,您只需应用十六进制格式 $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 值以增加安全性;这些是连接到字符串开头或结尾的字符串。