SAS加密程序

from http://blog.sina.com.cn/s/blog_69a09b050100tsyh.html

-、SAS数据集加密的简单算法

data name;
input name $ 1-25;
string=collate(0,255); 
high4=reverse(string);
cards;
JOHN DOE
张 三
李 四
;run;

data mono;
set name;
encrypt=translate(name,high4,string);
decrypt=translate(encrypt,string,high4);
run;
proc print data=mono;
var name encrypt decrypt;
run;

二、SAS宏加密

1、定义一个library存储你自己的macro

libname pgm “d:\temp”;

2、加上选项让你的系统能够从library PGM中找到宏定义

options sasmstore=pgm mstored mautosource;

3、编译宏原型,放入library PGM中的CATALOG sasmacr中

%macro test /store;
proc print data=sashelp.class;
where sex=”F”;
run;
%mend test;

4、在你部署程序的点上重建环境(

libname pgm “d:\temp”;

options sasmstore=pgm mstored mautosource;

复制PGM下的CATALOG sasmacr(sasmacr.sas7bcat)到部署环境中,让你的用户去调用宏就行了。

%test;
三、SAS系统结合WinRAR对文件进行加密压缩

%let file_path=%str(c:\test);   
%let target=%str(student);   
%let file1=%str(course.csv);   
%let file2=%str(teacher.csv);   
%let mima=123456;   
%macro compress_and_jiami;   
data _null_;   
   rc =system(“cd &file_path.”);   
   rc =system(“‘C:\Program Files\WinRAR\winrar.exe’ a -p&mima. &target. &file1.”);   
   rc =system(“‘C:\Program Files\WinRAR\winrar.exe’ a -p&mima. &target. &file2.”);   
   put rc =;   
run;   
%mend;   
%compress_and_jiami;  
 

四、结合之前工作的经验,发现了一种更为简便的数据集加密方法

data a(encrypt=yes pw=abc123);
   a=”password”;
run;

 

分享到:更多 ()