当我使用BTOA函数加密Javascript中的字符串g.b@yahoo.it
时,我得到结果Zy5iQHlhaG9vLml0
。
此函数将字符串转换为字符串的base64表示形式。当我尝试在SAS中执行等效操作时,我得到了不同的值:
proc fcmp outlib=common.funcs.funcs;
function b64(string $) $;
length digest $32767;
digest=strip(put(string,$base64x32767.));
return(digest);
endsub;
quit;
data email;
input email $12.;
datalines;
g.b@yahoo.it
run;
data X;
set email;
e1 = "<" || trim(email) || ">";
pw_e = b64(e1);
put _all_;
run;
给我:
email=g.b@yahoo.it e1=<g.b@yahoo.it> pw_e=PGcuYkB5YWhvby5pdD4= _ERROR_=0 _N_=1
根据每个文档,他们使用相同的字母:
http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003161924.htm
https://www.w3schools.com/jsref/met_win_btoa.asp
我想在SAS Data Step中复制相同的功能以获得相同的结果。有没有办法在SAS中做到这一点?
答案 0 :(得分:0)
他们正在做同样的事情。您正在修改传递给SAS中base64编码函数的字符串,这就是您获得不同结果的原因。您在SAS中使用的字符串为<g.b@yahoo.it>
(您在其周围添加了<
和>
个字符。
如果您通过btoa()运行相同的<g.b@yahoo.it>
字符串,则会得到PGcuYkB5YWhvby5pdD4=