슬롯 나라gms : 입력 파일 암호화 데모

설명

입력 파일은 암호화 키로 암호화될 수 있습니다. 어느 쪽이든
개인정보 보호 라이센스 파일 메커니즘 또는 명령줄 매개변수 쌍
encryptKey/decryptKey는 비밀번호 관리용으로 사용할 수 있습니다. 유사하다
압축을 위해 우리는 모든 파일을 잠글 수 있는 $슬롯 나라 유틸리티를 제공합니다.
특정 키. 파일이 암호화되면 읽기만 가능합니다.
일치하는 라이센스 파일이 있거나 일치하는 게임 프로그램에 의해
암호 해독 키. 반대 작업은 불가능합니다. 복구할 수 없습니다.
암호화된 버전의 원본 GAMS 파일.

암호화된 파일을 생성하려면 다음과 같은 라이선스 파일이 필요합니다.
보안 옵션이 활성화되었습니다.

키워드: GAMS 언어 기능, 입력 파일 암호화

소형 모델 유형 :슬롯 나라


카테고리 : 슬롯 나라 모델 라이브러리


메인 파일 : 슬롯 나라gms

$title 입력 파일 암호화 데모(슬롯 나라SEQ=318)

$onText
입력 파일은 암호화 키를 사용하여 암호화할 수 있습니다. 어느 쪽이든
개인정보 보호 라이센스 파일 메커니즘 또는 명령줄 매개변수 쌍
encryptKey/decryptKey는 비밀번호 관리용으로 사용할 수 있습니다. 유사하다
압축을 위해 우리는 모든 파일을 잠글 수 있는 $슬롯 나라 유틸리티를 제공합니다.
특정 키. 파일이 암호화되면 읽기만 가능합니다.
일치하는 라이센스 파일이 있거나 일치하는 게임 프로그램에 의해
암호 해독 키. 반대 작업은 불가능합니다. 복구할 수 없습니다.
암호화된 버전의 원본 GAMS 파일.

암호화된 파일을 생성하려면 다음과 같은 라이선스 파일이 필요합니다.
보안 옵션이 활성화되었습니다.

키워드: GAMS 언어 기능, 입력 파일 암호화
$offText

$설정되지 않은 경우 MYPLICENSE $set MYPLICENSE "%gams.sysdir%plicense.txt"
$ifThen은 존재하지 않습니다. "%MYPLICENSE%"
$ log *** 대상 라이선스 파일 "%MYPLICENSE%"가 존재하지 않습니다.
$ log *** --MYPLICENSE=...를 통해 지정합니다.
$ log *** en/decryptKey를 통해서만 암호화
$ MYPLICENSE 삭제
$endIf

* --- 모델 가져오기
$onDollar
$call gamslib -q trnsport
$eolCom //

$ifThen.MYPLICENSE가 MYPLICENSE를 설정합니다.
* --- 암호화 및 해독 시도
$call rm -f t1.gms
$echo $암호화 trnsport.gms t1.gms > s1.gms
$call gams s1 plicense="%MYPLICENSE%" lo=%gams.lo%
$ifE errorLevel<>0 $abort 암호화 실패

$if errorFree $abbor 보류 중인 오류
$decompress t1.gms t1.org // 이것은 실패해야 합니다
$if errorFree $abort 압축 해제가 실패하지 않았습니다.
$clearError

* --- 원본 및 암호화된 모델 실행
$call gams trnsport gdx=trnsport lo=%gams.lo%
$ifE errorLevel<>0 $abort 모델 trnsport 실패
$call gams t1 라이센스="%MYPLICENSE%" gdx=t1 lo=%gams.lo%
$ifE errorLevel<>0 $abort 모델 t1 실패
$call gdxdiff trnsport t1 %system.reDirLog%
$ifE errorLevel<>0 trnsport 및 t1에 대한 $abort 결과가 동일하지 않습니다.

* --- 암호화된 파일을 포함 파일로 사용
$onEcho > t2.gms
$off목록
* 이건 숨겨져 있어요
옵션 limRow = 0, limCol = 0, solPrint = off;
$include t1.gms
$onListing
* 이것이 보여질 것이다
$offEcho
$call gams t2 라이센스="%MYPLICENSE%" lo=%gams.lo%
$ifE errorLevel<>0 $abort 모델 t2 실패

* --- 시청으로부터 보호
* 이제 입력의 일부를 보호하는 방법을 보여 드리겠습니다.
* 원본 소스를 보고 추출한 파일
* gams DUMPOPT 매개변수를 통해. 우리는 단지
* 다시 암호화

* --- 새 모델 암호화
$call rm -f t3.gms
$echo $슬롯 나라 t2.gms t3.gms > s1.gms
$call gams s1 plicense="%MYPLICENSE%" lo=%gams.lo%
$ifE errorLevel<>0 $abort 암호화 실패
$call gams t3 라이센스="%MYPLICENSE%" gdx=t3 dumpopt=19 lo=%gams.lo%
$ifE errorLevel<>0 $abort 모델 t3 실패
$call gdxdiff trnsport t3 %system.reDirLog%
$ifE errorLevel<>0 trnsport 및 t3에 대한 $abort 결과가 동일하지 않습니다.

* --- 숨겨진 출력 확인
$call grep "이것은 숨겨져 있습니다" t3.lst > %system.nullfile%
$if errorLevel 1 $abort가 목록에 숨겨지지 않았습니다.
$call grep "이것은 숨겨져 있습니다" t3.dmp > %system.nullfile%
$if errorLevel 1 $abort가 덤프 파일에 숨겨지지 않았습니다.
$endIf.MYPLICENSE

* encryptKey/decryptKey와 동일
* --- 암호화 및 해독 시도
$call rm -f t1.gms
$echo $암호화 trnsport.gms t1.gms > s1.gms
$call gams s1 encryptKey=ThisIsMyPassword lo=%gams.lo%
$ifE errorLevel<>0 $abort 암호화 실패

$if errorFree $abbor 보류 중인 오류
$decompress t1.gms t1.org // 이것은 실패해야 합니다
$if errorFree $abort 압축 해제가 실패하지 않았습니다.
$clearError

*-- 원본 및 암호화된 모델 실행
$call gams trnsport gdx=trnsport lo=%gams.lo%
$ifE errorLevel<>0 $abort 모델 trnsport 실패
$call gams t1 decryptKey=ThisIsMyPassword gdx=t1 lo=%gams.lo%
$ifE errorLevel<>0 $abort 모델 t1 실패
$call gdxdiff trnsport t1 %system.reDirLog%
$ifE errorLevel<>0 trnsport 및 t1에 대한 $abort 결과가 동일하지 않습니다.

* --- 암호화된 파일을 포함 파일로 사용
$onEcho > t2.gms
$off목록
* 이건 숨겨져 있어요
옵션 limRow = 0, limCol = 0, solPrint = off;
$include t1.gms
$onListing
* 이것이 보여질 것이다
$offEcho
$call gams t2 decryptKey=ThisIsMyPassword lo=%gams.lo%
$ifE errorLevel<>0 $abort 모델 t2 실패

* --- 시청으로부터 보호
* 이제 입력의 일부를 보호하는 방법을 보여 드리겠습니다.
* 원본 소스를 보고 추출한 파일
* gams DUMPOPT 매개변수를 통해. 우리는 단지
* 다시 암호화

* --- 새 모델 암호화
$call rm -f t3.gms
$echo $슬롯 나라 t2.gms t3.gms > s1.gms
$call gams s1 encryptKey=ThisIsMyPassword lo=%gams.lo%
$ifE errorLevel<>0 $abort 암호화 실패
$call gams t3 decryptKey=ThisIsMyPassword gdx=t3 dumpopt=19 lo=%gams.lo%
$ifE errorLevel<>0 $abort 모델 t3 실패
$call gdxdiff trnsport t3 %system.reDirLog%
$ifE errorLevel<>0 trnsport 및 t3에 대한 $abort 결과가 동일하지 않습니다.

* --- 숨겨진 출력 확인
$call grep "이것은 숨겨져 있습니다" t3.lst > %system.nullfile%
$if errorLevel 1 $abort가 목록에 숨겨지지 않았습니다.
$call grep "이것은 숨겨져 있습니다" t3.dmp > %system.nullfile%
$errorLevel 1이 아닌 경우 $abort가 덤프 파일에 숨겨지지 않았습니다.