비밀번호 암호화
EGL 명령행 유틸리티로 비밀번호를 암호화할 수 있습니다. 비밀번호 암호화는 COBOL 프로그램이 아닌 Java™ 프로그램 및 디버거에만 지원됩니다.
EGL이 출력 파일을 생성할 때, 이는 시스템 함수에 전달되는 특성 파일과 리터럴의 비밀번호를
자동으로 암호화합니다. 예를 들어, 다음은 sqlLib.connect 시스템 함수에 대한
호출입니다.
sqlLib.connect(myDatabase, myUserid, "myPassword");
비밀번호 매개변수가
문자열 리터럴로 지정되어 생성된 코드에서
자동으로 암호화됩니다.그러나 함수 호출이 아닌 위치에서 비밀번호를 하드 코딩하는 경우
EGL이 비밀번호를 암호화하지 않습니다.
myPasswordVariable string = "myPassword";
sqlLib.connect(myDatabase, myUserid, myPasswordVariable);
이 경우
비밀번호는 암호화되지 않으며 생성된 소스에서
표시됩니다.명령형 유틸리티를 실행하고 코드에서 리턴된 암호화 값을 사용하여
비밀번호를 수동으로 암호화할 수 있습니다.
myPasswordVariable string = "crypto:abcdef12345";
sqlLib.connect(myDatabase, myUserid, myPasswordVariable);
다음은 하드 코딩된 비밀번호를 수동으로 암호화해야 할 수 있는
일부 위치입니다.
- 비밀번호를 저장하는 변수
- CallLink 요소 특성(예: ctgKeyStorePassword)
- 리터럴로서 또는 함수 호출에서 비밀번호를 전달하지 않는, sqlLib.connect, sysLib.setRemoteUser 또는 VGLib.connectionService와 같은 시스템 함수에 대한 호출
EGL 시스템 함수는 crypto: 접두부가 있는 비밀번호를 수신할 때 비밀번호를 자동으로 복호화합니다. 이러한 이유로 crypto: 문자로 시작하는 비밀번호를 암호화해야 하며 그렇지 않으면 EGL이 암호화되지 않은 비밀번호를 복호화하려고 시도합니다.
다음 단계를 따라 비밀번호를 암호화하십시오.
- 시스템의 경로에
Java 실행 파일을 추가하십시오.
- Java SDK가 없는 경우 얻은 후 설치하십시오. IBM®은 다음 웹 사이트에서 다운로드할 수 있는 Java SDK를 제공합니다. http://www.ibm.com/developerworks/java/jdk/.
- 시스템의 PATH 환경 변수에서 Java SDK의 위치를 추가하십시오. 지시사항은 운영 체제의 문서를 참조하십시오.
- 명령 프롬프트를 여십시오.
- 다음 위치로 이동하십시오.
shared_resources\plugins\ com.ibm.etools.egl.java.runtime_version- shared_resources
- 제품의 공유 자원 디렉토리(예: Windows 시스템의 C:\Program Files\IBM\SDP70Shared 또는 Linux 시스템의 /opt/IBM/SDP70Shared)입니다. 현재 제품을 설치하기 전에 EGL이 포함된 이전 버전의 IBM 제품을 설치하고 유지한 경우 이전 설치에서 설정된 공유 자원 디렉토리를 지정해야 할 수도 있습니다.
- version
- 설치된 플러그인 버전입니다. 두 개 이상이 있는 경우 이전 버전을 사용해야 하는 이유가 없으면 최신 버전 번호의 플러그인을 사용하십시오.
- 다음 명령을 입력하여 프로그램을 호출하십시오.
프로그램이 Enter text to encrypt: 프롬프트를 표시합니다.java -classpath fda7.jar com.ibm.javart.security.PasswordEncrypter - 비밀번호를 입력하고 Enter를 누르십시오. 프로그램이 crypto: 접두부로 시작하는 암호화된 문자열을 리턴합니다.
- 일반적으로 비밀번호를 하드 코딩하는 위치로 crypto: 접두부를 포함하여 리턴된 전체 문자열을 복사하십시오.
- 변경된 파일을 저장하고 프로젝트를 재생성하십시오.