반응형
Jeus 6.0 설치
 
1. 다운로드
- https://technet.tmaxsoft.com 접속
- 회원가입 및 로그인 (https://kr.tmaxsoft.com 과 계정 별도임)
- 다운로드 > 미들웨어 > JEUS 클릭
- JEUS 6.0 Fix#9 오른쪽 [다운로드] 클릭
- 하단에서 Linux 클릭
- Linux (x86) 64-bit 클릭
- [Unix Installer] 클릭하여 파일 다운로드
Unix Installer (GUI/Console)(jeus60_unix_generic_ko.bin) 269.80 MB 
[MD5: d3a763b1e7025ada75204aa6b54bd3ef]
 
2. 계정생성
- useradd jeus
 
2. 업로드 및 무결성 체크
- [jeus@goni ~]$ md5sum jeus60_unix_generic_ko.bin
d3a763b1e7025ada75204aa6b54bd3ef  jeus60_unix_generic_ko.bin
 
3. bin파일 실행
- 실행권한 추가
- [jeus@goni ~]$ chmod u+x jeus60_unix_generic_ko.bin
- 실행
- [jeus@goni ~]$ ./jeus60_unix_generic_ko.bin 
 
Preparing to install...
Extracting the installation resources from the installer archive...
Configuring the installer for this systems environment...
strings: '/lib/libc.so.6': No such file
 
Launching installer...
 
===============================================================================
JEUS6.0                           (created with InstallAnywhere by Macrovision)
-------------------------------------------------------------------------------
 
 
===============================================================================
Introduction
------------
 
InstallAnywhere will guide you through the installation of JEUS6.0.
 
It is strongly recommended that you quit all programs before continuing with 
this installation.
 
Respond to each prompt to proceed to the next step in the installation.  If you
want to change something on a previous step, type 'back'.
 
You may cancel this installation at any time by typing 'quit'.
 
PRESS <ENTER> TO CONTINUE: 
- 엔터
 
4. JEUS 라이선스 준수 화면이 나타난다.
===============================================================================
License Agreement
-----------------
...
생략
...
 
5. JEUS 라이선스 준수에 대한 다음 정보를 보기 위하여 <ENTER> 키를 누른다.
PRESS <ENTER> TO CONTINUE: 
- 엔터
PRESS <ENTER> TO CONTINUE: 
- 엔터
 
6. 라이선스 동의 여부를 답한다.
동의하면 ‘y’를 입력 후 <ENTER> 키를 누르고, 아니면 ‘n’을 입력 후 <ENTER> 키를 누른다.
 
DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N):
- Y
 
7. 플랫폼 목록에서 설치할 플랫폼을 선택하고 해당 번호를 입력한다.
===============================================================================
Choose Platform
---------------
 
Choose current system ( platform-architecture )
1)HP-UX PA-RISC
2)HP-UX ITANIUM
3)Solaris Ultra-Sparc
4)Solaris x86
5)Solaris x64
6)AIX 5.x, 6.x, 7.x PowerPC
7)Linux ITANIUM
8)Linux x86
9)Linux x64
Quit) Quit Installer
 
Choose Current System (DEFAULT: 9):
- 9
 
8. 설치 디렉터리를 선택한다.
기본적으로 제공되는 값을 사용하려면 <ENTER> 키를 누르고, 디렉터리 변경을 원하면 설치 경로를 입력한다.
===============================================================================
Choose Install Folder
---------------------
 
Where would you like to install?
 
  Default Install Folder: /home/jeus/jeus6
 
ENTER AN ABSOLUTE PATH, OR PRESS <ENTER> TO ACCEPT THE DEFAULT 
- 엔터
 
9. Full Install, Typical 설치 중 하나를 선택한다.
===============================================================================
Choose Install Set
------------------
 
Please choose the Install Set to be installed by this installer.
 
  ->1- Full Install
    2- Typical
 
ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT THE DEFAULT
   : 
- 엔터
 
10. JDK의 위치를 입력한다. <ENTER> 키를 누르면 자동으로 인식한 JDK의 위치를 사용한다. 디렉터리 변경을 원하면 설치 경로를 입력한다.
===============================================================================
Choose JDK Folder
-----------------
 
Please Choose a Folder: 
 
Input User JDK Folder (DEFAULT: /usr): 
- /usr/java/jdk1.7.0_80
 
11. JEUS 관리자의 패스워드를 입력한다. 이 패스워드는 “administrator” ID로 할당된다.
===============================================================================
Password Input
--------------
 
Enter the Password for the administrator account.
This password will be registered in JEUS as the first user.
 
Input Password:: 
- jeusadmin
Corfirm Password::
- jeusadmin
 
12. 다음 화면은 설치에 관련한 요약정보를 보여준다. <ENTER> 키를 누르면 설치가 진행된다.
===============================================================================
Pre-Installation Summary
------------------------
 
Please Review the Following Before Continuing:
 
Product Name:
    JEUS6.0
 
Install Folder:
    /home/jeus/jeus6
 
Install Set
    Full Install
 
Disk Space Information (for Installation Target): 
    Required:  308,147,759 bytes
    Available: 89,884,295,168 bytes
 
PRESS <ENTER> TO CONTINUE: 
- 엔터
 
 
13. 진행 바와 함께 설치가 진행된다.
===============================================================================
Installing...
-------------
 
 [==================|==================|==================|==================]
 [------------------|
 
 
14. 설치가 완료된다.
==============================================================================
Installation Complete
---------------------
 
Congratulations! JEUS6.0 has been successfully installed to:
 
/home/jeus/jeus6
 
Press Done to quit the installer. 
 
PRESS <ENTER> TO EXIT THE INSTALLER: 
- 엔터
 
[jeus@goni ~]$ 
 
15. 환경변수 설정
- .bashrc 파일 하단에 내용 추가
- [jeus@goni ~]$ vi ~/.bashrc
export JUES_HOME=/home/jeus/jeus6
export PATH=$PATH:$JUES_HOME/bin:$JUES_HOME/webserver/bin:$JUES_HOME/lib/system
 
[jeus@goni ~]$ echo $JUES_HOME
 
[jeus@goni ~]$ source ~/.bashrc
[jeus@goni ~]$ echo $JUES_HOME
/home/jeus/jeus6
[jeus@goni ~]$ 
 
16. 기동확인
[jeus@goni ~]$ jeus
 
***************************************************************
  - JEUS Home         : /home/jeus/jeus6                           
  - JEUS Base Port    : 9736                       
  - Java Vendor       : etc                         
  - Added Java Option :                            
***************************************************************
+ /usr/java/jdk1.7.0_80/bin/java -Xmx512m -Xbootclasspath/p:/home/jeus/jeus6/lib/system/extension.jar -classpath /home/jeus/jeus6/lib/system/bootstrap.jar -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.library.path=/home/jeus/jeus6/lib/system -Djava.endorsed.dirs=/home/jeus/jeus6/lib/endorsed -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djava.net.preferIPv4Stack=true -Djava.util.logging.config.file=/home/jeus/jeus6/bin/logging.properties -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djeus.home=/home/jeus/jeus6 -Djeus.log.home=/home/jeus/jeus6/logs -Djeus.baseport=9736 -Djeus.jvm.version=old -Djeus.tm.checkReg=true -Djeus.tool.webadmin.locale.language=ko -Djeus.net.reuseAddress=true -Djeus.properties.replicate=jeus,sun.rmi,java.util,java.net jeus.server.JeusBootstrapper
================ JEUS LICENSE INFORMATION ================
=== EDITION: Enterprise (Trial License)
=== NOTICE: This license restricts the number of allowed clients.
=== Max. Number of Clients: 5
==========================================================
[2018.09.30 20:40:39][0][b396] [goni-1] [MGR-0000] JEUS Server is starting - JEUS 6.0 (Fix#9) (6.0.0.9-b396)
[2018.09.30 20:40:39][0][b396] [goni-1] [MGR-0001] java.specification.version=[1.7], java.runtime.version=[1.7.0_80-b15], vendor=[Oracle Corporation]
[2018.09.30 20:40:39][2][b396] [goni-1] [MGR-0002] JEUS Manager=[goni], baseport=[9736], pid=[2567]
[2018.09.30 20:40:39][2][b396] [goni-1] [MGR-0004] current system time zone : sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=22,lastRule=null]
[2018.09.30 20:40:39][2][b396] [goni-1] [MGR-0005] virtual host table {goni/접속IP:9736=goni, goni/접속IP:21000=example}, enabled=true
[2018.09.30 20:40:39][0][b396] [goni-1] [MGR-0006] virtual host name=[goni]
[2018.09.30 20:40:39][0][b396] [goni-1] [MGR-0248] JEUS Manager is BOOTING
[2018.09.30 20:40:39][2][b396] [goni-1] [MGR-0571] The system property [jeus.net.reuseAddress] may not be correct, please check this
[2018.09.30 20:40:40][2][b396] [goni-1] [MGR-0569] [Network] server hostname = [goni], full hostname = [goni9071.tistory.com]
[2018.09.30 20:40:40][2][b396] [goni-1] [MGR-0570] [Network] server IP address = [접속IP], [goni9071.tistory.com/접속IP]
[2018.09.30 20:40:40][2][b396] [goni-1] [MGR-0574] [RMI] Default RMI export port = 9743
[2018.09.30 20:40:40][2][b396] [goni-1] [Network-0007] OnePortServer[0.0.0.0/0.0.0.0:9736] started
[2018.09.30 20:40:40][2][b396] [goni-1] [MGR-0184] Node security manager started
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=J2EEDomain,JMXManager=goni,name=JeusSystem
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=JeusManager,JMXManager=goni,name=goni
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ThreadPool,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=OnePortServer
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ThreadPool,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=SecurityNetworkService
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JVM,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=goni
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=JeusLogService,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=goni
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=SecurityService,JMXManager=goni,JeusManager=goni,name=SecurityService
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=SecurityDomain,JMXManager=goni,JeusManager=goni,SecurityService=SecurityService,name=SYSTEM_DOMAIN
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=SecurityPolicy,JMXManager=goni,JeusManager=goni,SecurityDomain=SYSTEM_DOMAIN,name=Policy
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=SecuritySubject,JMXManager=goni,JeusManager=goni,SecurityDomain=SYSTEM_DOMAIN,name=Subject
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=NodeControllerService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ThreadPool,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=jeus.server.ControlThread
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ClassFTPService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ThreadPool,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=WebLinkManager
[2018.09.30 20:40:40][2][b396] [goni-1] [MGR-0114] Class FTP service started
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=JNDIResourceService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ThreadPool,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=JNSServer
[2018.09.30 20:40:40][2][b396] [goni-1] [MGR-0173] JNDI Naming Server started
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ClusterService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:40][2][b396] [goni-1] [MGR-0119] Beacon receiver started
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=NodeListService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:40][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=JMXExportService,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=goni
[2018.09.30 20:40:41][2][b396] [goni-1] [JMXR-0138] The JMXConnector service url is service:jmx:jmxmp://접속IP:9736/JEUSMP_goni
[2018.09.30 20:40:41][2][b396] [goni-1] [JMX-0051] JMX Connector started with the JNDI name [mgmt/rmbs/goni]
[2018.09.30 20:40:41][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=SessionServerService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:41][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=SchedulerService,JMXManager=goni,JeusManager=goni,J2EEServer=null,name=goni
[2018.09.30 20:40:41][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=LogAnalyzerService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:41][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=SystemEngineService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:41][2][b396] [goni-1] [WEB-3857<Context(WebAdmin)>
- session descriptor -
    - distributable     : false
    - shared            : false
    - timeout           : 30(min)
    - reload-persistent : false
    - url-rewriting     : false
- session cookie -
    - jsessionid-name : JSESSIONID
    - version         : 0
    - domain          : null
    - path            : null
    - max-age         : -1 (browser-lifetime)
    - secure          : false
 
[2018.09.30 20:40:42][1][b396] [goni-1] [WEB-3713] Failed to initialize security environment with policy : _JeusSystemContextGroup/WebAdmin. webapp descriptor or web-dd descriptor is null
[2018.09.30 20:40:42][2][b396] [goni-1] [WEB-3406] context (WebAdmin) is initialized successfully
[2018.09.30 20:40:44][2][b396] [goni-1] [WEB-8201] [WebAdmin] (jeus.tool.webadmin.util.ApplicationInitializer) loaded
[2018.09.30 20:40:49][2][b396] [goni-1] [WEB-3480] context (WebAdmin) is started successfully
[2018.09.30 20:40:49][2][b396] [goni-1] [WEB-3415] ContextGroup(JeusSystemContextGroup) successfully initialized
[2018.09.30 20:40:49][2][b396] [goni-1] [WEB-3250] worker thread pool created. id = webadmin-http-listener
[2018.09.30 20:40:49][2][b396] [goni-1] [WEB-2052<listener(webadmin-http-listener)> connection init successful. port = 9744
[2018.09.30 20:40:49][2][b396] [goni-1] [WEB-3413] (JeusSystemContextGroup) ready to receive request
[2018.09.30 20:40:49][2][b396] [goni-1] [WEB-1027] WebContainer [goni_system_engine] boot successful
[2018.09.30 20:40:49][2][b396] [goni-1] [MGR-0191] System Engine booted
[2018.09.30 20:40:49][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=JDBCResourceService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:49][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ExternalResourceService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:49][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=JavaMailResourceService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:49][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=URLResourceService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:49][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=JAXRResourceService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:49][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ContainerManagerService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:49][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=ContainerMonitorService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:50][2][b396] [goni-1] [JMX-0011] create MBean : JEUS:j2eeType=JeusService,jeusType=MessageBridgeService,JMXManager=goni,JeusManager=goni,name=goni
[2018.09.30 20:40:50][0][b396] [goni-1] [MGR-0248] JEUS Manager is READY
 
17. 다른 콘솔 창에서 다음의 명령어를 실행한다. <node name>은 호스트 머신 이름이다.
- jeusadmin <node name>
 
[jeus@goni ~]$ hostname
goni9071.tistory.com
[jeus@goni ~]$ jeusadmin goni9071.tistory.com
Login name>administrator
Password>
- jeusadmin
 
18. jeusadmin 툴에 로그인을 한 후에, boot와 down 명령으로 JEUS 서버를 제어할 수 있다.
JEUS 서버를 다운시키려면 down을 입력한 후<ENTER> 키를 누르고, 다음 행에서 jeusexit를 입력한 후 <ENTER> 키를 누른다.
 
 
JEUS 6.0 (Fix#9) administration tool
goni>down
Do you really want to shutdown the node [goni]? (y : n):>y
Failed to down the JEUS node [goni].
goni>jeusexit
goni jeusexit successful
 
19. jeusadmin을 종료하기 위해서 exit 명령어를 사용한다.
goni>exit
[jeus@goni ~]$ 
 
 
20. 포트허용
[root@goni ~]# iptables -I INPUT 1 -p tcp --dport 9744 -j ACCEPT
 
21. 웹어드민 접속
- http://[접속ip]:9744/webadmin/app
- administrator/jeusadmin


반응형
반응형
Tibero Admin Tool 설치
 
1. 다운로드
- https://technet.tmaxsoft.com 접속
- 회원가입 및 로그인 (https://kr.tmaxsoft.com 과 계정 별도임)
- 다운로드 --- 데이터베이스 --- Tibero 클릭
- 'Tibero Admin Tool' 오른쪽 [다운로드] 클릭
- 하단에서 MS 클릭
- Windows (x86) 64-bit 클릭
- [전체파일 다운로드] 클릭하여 파일 다운로드
- Tibero Admin Tool for Windows 64bit(tbAdmin_6.0.45_20180810_win32.win32.x86_64.zip) 65.93 MB
 
2. 실행
- 압축 해제 후 tbAdmin.exe 실행
 
3. 접속
- Connection Configuration
Name : [접속이름]
Server IP : [접속IP]
Port : 8629
User : sys
Password : tibero
DB Name(SID) : tibero
Database Type : TIBERO_5X
- Save
- Test
Successfully connected
- Connect
 
3. Schema 생성 (Import 할 대상 Schema 먼저 생성되어 있어야 함.)
- Schema Tree Browser
- "0. sys@[접속IP]:8629:tibero nlic TIBERO_5x" 커넥션에서 마우스 오른쪽 > Create Schema Object
- Schema 선택 후 OK
- Info탭
- User Info
- User Name : [Schema 명]
- New Password : [패스워드]
- Confirm New Password : [패스워드]
- OK 
- User Created
 
 
4. Tablespace 생성 (Import 할 대상 Tablespace 먼저 생성되어 있어야 함.)
- "0. sys@[접속IP]:8629:tibero nlic TIBERO_5x" 커넥션 > Tablespace 마우스 오른쪽 > Create - Tablespace
- Name : [Tablespace 명] 
- File Specification 탭
- Name : [Tablespace 파일명] 
- Autoextend : check
- MaxUnlimit : check
"Tablespace has been created"
 
 
4. Import
- Tool > Import
- Import File : import_파일.dat
- Scope : Full DB
- Import
 
 
**
- 오류
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
-tbAdmin.ini 파일 첫줄에 아래 삽입
-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe
- Tibero Admin Tool 재시작


반응형

'Tool' 카테고리의 다른 글

ip 차단 우회 - Tor 설치 Centos 6  (0) 2018.10.19
JEUS6.0 + Eclipse + JeusPlugin  (0) 2018.10.10
윈도우 JEUS 6.0 설치  (0) 2018.10.10
SQL DEVELOPER 날짜형식 변경하기  (0) 2018.10.08
리눅스 Tibero5 SP1설치  (0) 2018.09.30
엑셀 휴대폰 번호 서식  (0) 2018.07.24
SQLGate for DB2 무료 설치  (0) 2018.06.04
bower 설치  (0) 2018.05.25
반응형
리눅스 Tibero5 SP1설치 
 
참고 : (https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_Tibero5_%EC%84%A4%EC%B9%98)
 
1. 다운로드
- https://technet.tmaxsoft.com 접속
- 회원가입 및 로그인 (https://kr.tmaxsoft.com 과 계정 별도임)
- 다운로드 --- 데이터베이스 --- Tibero 클릭
- 'Tibero 5 SP1' 오른쪽 [다운로드] 클릭
- 하단에서 Linux 클릭
- Linux (x86) 64-bit 클릭
- [전체파일 다운로드] 클릭하여 파일 다운로드
- linux64(tibero5-bin-FS05_CS_1808-linux64-159154-opt-tested.tar.gz) 271.76 MB
- linux64(tibero5-bin-FS05_CS_1808-linux64-159154-opt.md5) 85.00 bytes
 
2. 대상서버 호스트명 확인
- 데모 라이선스 발급시 입력할 호스트명 확인
- [root@goni ~]# hostname
- goni9071.tistory.com
 
3. 데모라이선스 발급
- 왼쪽 [데모라이선스 신청] 클릭
- 제품명: Tibero
- Version: 5.0 sp1
- Host Name: goni9071.tistory.com
- Edition: Enterprise
- 회사명, 사용목적 입력
- [제출하기] 클릭
--
제품명 : Tibero    
Version : All
발급유형 : demo
유효기간 : 6 month(s)
기능제한 : Each Edition
--
- 라이선스 정보가 입력한 이메일로 전달됨
- 메일제목: 'Tibero 5.0sp1 Demo license Information'
- Expiration Date: 6 months from the date issued
- 첨부파일 license.xml 다운로드
 
4. 계정 생성 및 환경변수 설정
- tibero 계정 생성하고 계정 전환
- [root@goni ~]# useradd tibero
- [root@goni ~]# su - tibero
- [tibero@goni ~]$
 
- .bashrc 파일 하단에 내용 추가
- [tibero@goni ~]$ vi .bashrc
export TB_HOME=/home/tibero/Tibero/tibero5
export TB_SID=tibero
export LD_LIBRARY_PATH=$TB_HOME/lib:$TB_HOME/client/lib
export PATH=$PATH:$TB_HOME/bin:$TB_HOME/client/bin
 
[tibero@goni ~]$ echo $TB_HOME
 
[tibero@goni ~]$ source .bashrc
[tibero@goni ~]$ echo $TB_HOME
/home/tibero/Tibero/tibero5
 
 
5. 업로드 및 압축해제
- Tibero 폴더 생성
- [tibero@goni ~]$ mkdir Tibero
- [tibero@goni ~]$ cd Tibero/
- [tibero@goni Tibero]$
- 설치파일 + 라이선스파일 업로드
- [tibero@goni Tibero]$ ll
total 278296
-rw-r--r-- 1 tibero tibero       510 Sep 29 22:27 license.xml
-rw-r--r-- 1 tibero tibero        85 Sep 29 22:32 tibero5-bin-FS05_CS_1808-linux64-159154-opt.md5
-rw-r--r-- 1 tibero tibero 284960023 Sep 29 22:45 tibero5-bin-FS05_CS_1808-linux64-159154-opt-tested.tar.gz
- 무결성 체크
- [tibero@goni Tibero]$ md5sum tibero5-bin-FS05_CS_1808-linux64-159154-opt-tested.tar.gz
5230efd0b6994faf580ec4efe3b75428  tibero5-bin-FS05_CS_1808-linux64-159154-opt-tested.tar.gz
[tibero@goni Tibero]$ cat tibero5-bin-FS05_CS_1808-linux64-159154-opt.md5
5230efd0b6994faf580ec4efe3b75428  tibero5-bin-FS05_CS_1808-linux64-159154-opt.tar.gz
- 압축해제
- [tibero@goni Tibero]$ tar xvzf tibero5-bin-FS05_CS_1808-linux64-159154-opt-tested.tar.gz
... (생략)
tibero5/license/oss_licenses/oss_licenses.txt
tibero5/license/oss_licenses/BSD_license.txt
tibero5/license/oss_licenses/Apache_v2.txt
라이선스 파일 복사
- [tibero@goni Tibero]$ cp license.xml tibero5/license/
- [tibero@goni Tibero]$
 
6. TIP 파일 생성
- [tibero@goni Tibero]$ cd tibero5/config/
- [tibero@goni config]$ ./gen_tip.sh
Using TB_SID "tibero"
/home/tibero/Tibero/tibero5/config/tibero.tip generated
/home/tibero/Tibero/tibero5/config/psm_commands generated
/home/tibero/Tibero/tibero5/client/config/tbdsn.tbr generated.
Running client/config/gen_esql_cfg.sh
Done.
 
7. NOMOUNT 모드 기동
[tibero@goni config]$ cd ../bin/
[tibero@goni bin]$ tbboot nomount
Listener port = 8629
 
Tibero 5 SP1
 
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NOMOUNT mode).
 
8. DB 접속 및 데이터베이스 생성
[tibero@goni bin]$ tbsql sys/tibero
 
tbSQL 5  SP1
 
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
 
Connected to Tibero.
 
SQL> create database "tibero"
    user sys identified by tibero
    maxinstances 8
    maxdatafiles 100
    character set MSWIN949
    logfile group 1 'log001.log' 
            size 100M,
        group 2 'log002.log' 
            size 100M,
        group 3 'log003.log' 
            size 100M
    maxloggroups 255
    maxlogmembers 8
    noarchivelog
        datafile 'system001.dtf' 
            size 100M
            autoextend on next 100M
            maxsize unlimited
    default temporary tablespace TEMP
        tempfile 'temp001.dtf' 
            size 100M
            autoextend on next 100M
            maxsize unlimited
            extent management local autoallocate
    undo tablespace UNDO
        datafile 'undo001.dtf' 
            size 100M
            autoextend on next 100M
            maxsize unlimited
            extent management local autoallocate;
 
SQL> quit
Disconnected.
[tibero@goni bin]$
- [tibero@goni bin]$ tbdown
 
Tibero instance terminated (NORMAL mode).      
 
9. NORMAL 모드 기동
- [tibero@goni bin]$ tbboot
Listener port = 8629
 
Tibero 5  SP1
 
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL mode).
 
10. system.sh 실행
- system.sh를 실행하면...
- 현재 디렉터리에 있는 SQL 파일이 수행되며 role, System user, view, package 등이 생성됨
- SYS 및 SYSCAT 계정에 대한 기본 패스워드는 각각 tibero, syscat임... 이후는 Y 신공
- [tibero@goni bin]$ cd ../scripts/
- [tibero@goni scripts]$ ./system.sh 
Enter SYS password: 
tibero
Enter SYSCAT password: 
syscat
Creating the role DBA...
Create default system users & roles?(Y/N): 
Y
- 이후는 Y 신공
 
 
11. 프로세스 확인
[tibero@goni scripts]$ ps -ef | grep tbsvr
tibero   23071 23070  0 23:36 pts/0    00:00:00 tbsvr          -4 -t NORMAL -SVR_SID tibero
tibero   23076 23071  0 23:36 pts/0    00:00:00 tbsvr_WT001    -4 -t NORMAL -SVR_SID tibero
tibero   23077 23071  9 23:36 pts/0    00:00:13 tbsvr_WT002    -4 -t NORMAL -SVR_SID tibero
tibero   23078 23071  0 23:36 pts/0    00:00:00 tbsvr_WT003    -4 -t NORMAL -SVR_SID tibero
tibero   23079 23071  0 23:36 pts/0    00:00:00 tbsvr_PEP001   -4 -t NORMAL -SVR_SID tibero
tibero   23080 23071  0 23:36 pts/0    00:00:00 tbsvr_PEP002   -4 -t NORMAL -SVR_SID tibero
tibero   23081 23071  0 23:36 pts/0    00:00:00 tbsvr_PEP003   -4 -t NORMAL -SVR_SID tibero
tibero   23082 23071  0 23:36 pts/0    00:00:00 tbsvr_PEP004   -4 -t NORMAL -SVR_SID tibero
tibero   23083 23071  0 23:36 pts/0    00:00:00 tbsvr_SEQW     -4 -t NORMAL -SVR_SID tibero
tibero   23084 23071  0 23:36 pts/0    00:00:00 tbsvr_LOGW     -4 -t NORMAL -SVR_SID tibero
tibero   23085 23071  0 23:36 pts/0    00:00:00 tbsvr_LOGA     -4 -t NORMAL -SVR_SID tibero
tibero   23086 23071  0 23:36 pts/0    00:00:00 tbsvr_CKPT     -4 -t NORMAL -SVR_SID tibero
tibero   23087 23071  0 23:36 pts/0    00:00:00 tbsvr_BLKW000  -4 -t NORMAL -SVR_SID tibero
tibero   23834 22136  0 23:39 pts/0    00:00:00 grep tbsvr
 
12. 시작/정지
- 시작 : tbboot
- 정지 : tbdown
 
13. 포트허용
iptables -I INPUT 1 -p tcp --dport 8629 -j ACCEPT


반응형

'Tool' 카테고리의 다른 글

JEUS6.0 + Eclipse + JeusPlugin  (0) 2018.10.10
윈도우 JEUS 6.0 설치  (0) 2018.10.10
SQL DEVELOPER 날짜형식 변경하기  (0) 2018.10.08
Tibero Admin Tool 설치  (0) 2018.09.30
엑셀 휴대폰 번호 서식  (0) 2018.07.24
SQLGate for DB2 무료 설치  (0) 2018.06.04
bower 설치  (0) 2018.05.25
STS - no prefix constructor completions  (0) 2018.05.24
반응형

아래 명령어를 이용하시면 됩니다.


1
sudo update-alternatives --config editor



그러면 아래 처럼 나오는데 저는 항상 쓰던 vi를... 4번 누르면 됩니다.


1
2
3
4
5
6
7
8
9
10
There are 5 choices for the alternative editor (providing /usr/bin/editor).
 
  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/emacs24     0         manual mode
  4            /usr/bin/vim.basic   30        manual mode
  5            /usr/bin/vim.tiny    10        manual mode


반응형
반응형

Spring boot를 이용하면서 logback.xml 의 위치를 변경하고 싶다면 


logging.config=/test/logback.xml 처럼 사용하면 됩니다.


VM option 에서 -Dlogging.config=/test/logback.xml  도 가능하고


application.properties 에서 logging.config=/test/logback.xml  도 가능합니다.

반응형

'java' 카테고리의 다른 글

mybatis jdbcTypeForNull NULL  (0) 2018.11.05
java, springboot, hikari example  (0) 2018.10.30
ThreadLocal Test  (0) 2018.10.30
java - google otp  (0) 2018.10.19
restTemplate large file download stream  (0) 2018.09.03
java - pretty log - 예쁜 로그를 남기자!  (0) 2018.08.30
java php aes ecb nopadding  (2) 2018.08.29
enum fasterxml jackson Serializing and DeSerializer  (0) 2018.08.24
반응형
현재 서버에 접속중인 IP 목록을 확인하는 명령어 입니다.
 

 

 

1초 간격으로 서버에 접속중인 IP 목록을 확인합니다.

 

 

 

* cut 은 포트 제거에 쓰입니다.

* sort 정렬 후

* uniq -c 중복된 값을 제거하고 중복된 수를 표시합니다.

 

 

반응형

'스크립트' 카테고리의 다른 글

curl 기본 사용법  (0) 2018.11.07
jquery self unwrap  (0) 2018.11.06
jquery 확장 enter key function  (0) 2018.11.05
javascript cookie getCookie setCookie  (0) 2018.11.05
javascript java rsa  (0) 2018.08.13
aes256 cbc javascript and java  (0) 2018.08.09
ajax multiple parameter request list  (0) 2018.07.24
javascript object size  (0) 2018.07.23
반응형

잘 되던 앱에서 갑자기 " request was denied for security " toast 가 떴습니다.


원인을 살펴보니 참조하는 리소스 중에서 https ssl 유효기간이 만료(expire)되어 나타나는 toast 였습니다.



반응형
반응형

Spring 에서 제공하는 RestTemplate 을 이용해 File 을 download 할 때 byte로 받게 되면 large file은 out of memory 가 날수 있습니다.

그래서 stream으로 받아서 처리를 해줘야 합니다.


sample code를 공유합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
import java.net.URI;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
 
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.config.RequestConfig.Builder;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.protocol.HttpContext;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RequestCallback;
import org.springframework.web.client.ResponseExtractor;
import org.springframework.web.client.RestTemplate;
 
public class HttpUtil {
  public static void downloadPost(String url, String destPath, MultiValueMap<String, Object> parts, RestTemplate restOperations) {
    HttpHeaders headers = HttpUtil.getHeaders();
 
    // Optional Accept header
    RequestCallback requestCallback = request -> {
      request.getHeaders().addAll(headers);
      request.getHeaders().setAccept(Arrays.asList(MediaType.APPLICATION_OCTET_STREAM, MediaType.ALL));
      FormHttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter();
      formHttpMessageConverter.setCharset(Charset.forName("EUC-KR"));
      formHttpMessageConverter.write(parts, MediaType.APPLICATION_FORM_URLENCODED, request);
    };
 
    // Streams the response instead of loading it all in memory
    ResponseExtractor<Void> responseExtractor = response -> {
      // Here I write the response to a file but do what you like
      String filename = response.getHeaders().getContentDisposition().getFilename();
      Path path = Paths.get(destPath + "/" + filename);
      Files.copy(response.getBody(), path);
      return null;
    };
 
    restOperations.execute(URI.create(url), HttpMethod.POST, requestCallback, responseExtractor);
  }
 
  public static RestTemplate getRestTemplate(final HttpClientContext context) {
    HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
    factory.setReadTimeout(5000); // milliseconds
    RestTemplate restOperations = new RestTemplate(factory);
    restOperations.setRequestFactory(new HttpComponentsClientHttpRequestFactory() {
      @Override
      protected HttpContext createHttpContext(HttpMethod httpMethod, URI uri) {
        if (context.getAttribute(HttpClientContext.COOKIE_STORE) == null) {
          context.setAttribute(HttpClientContext.COOKIE_STORE, new BasicCookieStore());
          Builder builder = RequestConfig.custom().setRedirectsEnabled(false);
          context.setRequestConfig(builder.build());
        }
        return context;
      }
    });
 
    return restOperations;
  }
 
  public static HttpHeaders getHeaders() {
    HttpHeaders headers = new HttpHeaders();
    headers.set("Accept-Encoding""gzip, deflate, sdch");
    return headers;
  }
 
}
 


Dependency

1
2
3
4
5
6
7
8
9
    <!-- http client -->
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


반응형
반응형

프로그램이 복잡해질수록 로그의 중요성은 올라갑니다.

그리고 한줄 한줄 로그로는 사용자가 많은 프로그램에서는 추적하기가 정말 힘이듭니다.

그래서 만들어 봤습니다.

 

시작부터 끝까지 Depth를 타고 들어가서 한큐에 보기좋게 남겨주는 PrettyLog 입니다.

 

소스와 간단한 예제는 아래 코드를 참고하시면 됩니다.

 

저는 Spring AOP를 이용해서 Controller 부터 Dao 까지 모두 자동으로 로깅을 하고 있는데 디버깅이나 데이터 흐름을 파악하는데 정말 좋습니다.

(수행시간은 보너스)

 

유용하게 사용되었으면 좋겠습니다.

 
 

 

PrettyLogTest.java

 

 

PrettyLog.java

 

반응형
반응형

Java 와 PHP 가 암호화 텍스트를 주고 받을 때 사용할 수 있는 코드를 공유합니다.

방식은 AES ECB NoPadding 입니다.


NoPadding 때문에 암호화 대상에 임의로 16바이트에 맞춰서 공백 문자열을 넣어주고 있는데,

자바는 empty byte를 php 는 공백 문자열을 넣어주고 있어서 동일한 값을 암호화한 결과가 다르게 나옵니다.

하지만 복호화는 서로 잘되니 문제없이 쓸수 있습니다.


아래 코드를 참고하셔서 테스트하시면 됩니다.


php 테스트 사이트 : http://phptester.net/

java 테스트 사이트 : https://www.compilejava.net/


Java Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
 
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.AlgorithmParameterSpec;
 
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
 
public class AES {
  public static byte[] ivBytes = { 0x000x000x000x000x000x000x000x000x000x000x000x000x000x00,
      0x000x00 };
 
  public static String encryptAes(String text, String key)
      throws UnsupportedEncodingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException,
      IllegalBlockSizeException, BadPaddingException {
    if (text == null || text.length() == 0) {
      return text;
    }
    String encrypted = null;
    byte[] source = text.getBytes("UTF-8");
    SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
 
    Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
    cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
    int mod = source.length % 16;
    byte[] changeSource = null;
    if (mod != 0) {
      changeSource = new byte[source.length + (16 - mod)];
      System.arraycopy(source, 0, changeSource, 0, source.length);
    } else {
      changeSource = source;
    }
    encrypted = byteArrayToHex(cipher.doFinal(changeSource));
    return encrypted;
  }
 
  // key는 16 바이트로 구성 되어야 한다.
  public static String decryptAES(String s, String key) throws NoSuchAlgorithmException, NoSuchPaddingException,
      InvalidKeyException, UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException {
    if (s == null || s.length() == 0) {
      return s;
    }
    String decrypted = null;
    SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes(), "AES");
 
    Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
    cipher.init(Cipher.DECRYPT_MODE, skeySpec);
    decrypted = new String(cipher.doFinal(hexToByteArray(s)), "UTF-8");
    return decrypted.trim();
  }
 
  private static byte[] hexToByteArray(String s) {
    byte[] retValue = null;
    if (s != null && s.length() != 0) {
      retValue = new byte[s.length() / 2];
      for (int i = 0; i < retValue.length; i++) {
        retValue[i] = (byte) Integer.parseInt(s.substring(2 * i, 2 * i + 2), 16);
      }
    }
    return retValue;
  }
 
  private static String byteArrayToHex(byte buf[]) {
    StringBuffer strbuf = new StringBuffer();
    for (int i = 0; i < buf.length; i++) {
      strbuf.append(String.format("%02X", buf[i]));
    }
 
    return strbuf.toString();
  }
 
  public static String encryptAES(String s, String key, String op1, String op2) throws Exception {
    String encrypted = null;
    SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), op1);
 
    Cipher cipher = Cipher.getInstance(op2);
    AlgorithmParameterSpec IVspec = new IvParameterSpec(ivBytes);
    cipher.init(Cipher.ENCRYPT_MODE, skeySpec, IVspec);
    // cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
 
    encrypted = byteArrayToHex(cipher.doFinal(s.getBytes("UTF-8")));
    return encrypted;
  }
 
  public static void main(String[] args) throws InvalidKeyException, UnsupportedEncodingException,
      NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException {
    System.out.println(encryptAes("abc""12345678901234561234567890123456"));
    System.out.println(decryptAES("26438AE1764AA2FA01C52C230321AA85""12345678901234561234567890123456"));
  }
}



Result

1
2
695CFBAA063C83469BDB25741E3EA278
abc



Php Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
class CryptAES 
{
    protected $cipher     = MCRYPT_RIJNDAEL_128;
    protected $mode       = MCRYPT_MODE_ECB;
    protected $pad_method = 'no';
    protected $secret_key = '';
    protected $iv         = '';
 
 
    public function set_cipher($cipher)
    {
        $this->cipher = $cipher; 
    }
 
    public function set_mode($mode)
    {
        $this->mode = $mode;
    }
 
    public function set_iv($iv)
    {
        $this->iv = $iv;
    }
 
    public function set_key($key)
    {
        $this->secret_key = $key;
    }
 
    protected function pad($str)
    {
        return $this->no_pad($str); 
    }
 
    protected function unpad($str)
    {
        return $this->no_unpad($str); 
    }
 
 
    public function encrypt($str)
    {
        $str = $this->pad($str);
        $td = mcrypt_module_open($this->cipher, '', $this->mode, '');
 
        if ( empty($this->iv) )
        {
            $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
        }
        else
        {
            $iv = $this->iv;
        }
 
        mcrypt_generic_init($td, $this->secret_key, $iv);
        $cyper_text = mcrypt_generic($td, $str);
        $rt = bin2hex($cyper_text);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
 
        return strtoupper($rt);
    }
 
 
    public function decrypt($str){
        $td = mcrypt_module_open($this->cipher, '', $this->mode, '');
 
        if ( empty($this->iv) )
        {
            $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
        }
        else
        {
            $iv = $this->iv;
        }
 
        mcrypt_generic_init($td, $this->secret_key, $iv);
        $decrypted_text = mdecrypt_generic($td, self::hex2bin($str));
        $rt = $decrypted_text;
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
 
        return $this->unpad($rt);
    }
 
    public static function hex2bin($hexdata) {
        $bindata = '';
        $length = strlen($hexdata);
        for ($i=0; $i < $length; $i += 2)
        {
            $bindata .= chr(hexdec(substr($hexdata, $i, 2)));
        }
        return $bindata;
    }
 
    
    public static function no_pad($text)
    {
        $blocksize = 16;
        $pad = $blocksize - (strlen($text) % $blocksize);
        if($pad == 16){
            return $text;
        } else {
            return $text . str_repeat(' ', $pad);
        }
        
    }
 
    public static function no_unpad($text)
    {        
        return trim($text);
    }
}
$aes = new CryptAES();
$aes->set_key('12345678901234561234567890123456');
$rt = $aes->encrypt('abc');
echo $rt . '<br/>';
echo $aes->decrypt('695CFBAA063C83469BDB25741E3EA278') . '<br/>';


Result

1
2
26438AE1764AA2FA01C52C230321AA85
abc


반응형

+ Recent posts