Title |
[API] hybrid( API 와 Plug-in) 사용 시 한글 암호화 다른 현상 | Product |
API |
---|---|---|---|
Phenomenon |
plug-in에서 한글 암호화한 값은 다음과 같습니다.
select xx1.enc_vachar2_ins('이글로벌',11,'SSN') from dual; vE7o9UDseJeZfcyXGlmrdA== API 에서 한글을 coencchar 로 암호화 한 값은 다음과 같습니다. String encVal = coencchar("한글","SSN",11,null,null,errbyte); encVal = oP9nOKEeo54lyaWPSRTKzA== |
||
Cause |
plug-in에서 한글 암호화 시 Data를 byte 형태로 처리 하기 때문에 API에서 다른 암호화 값으로 나옵니다.
|
||
Solution |
API에서 coencbytes 함수를 사용하여 암호화를 하면 plug-in 과 같은 값을 얻을 수 있습니다.
한글은 java에서 1글자가 3byte로 처리되기 때문에 2번재 변수에 12를 넣어 사용합니다. String encVal = coencbytes("이글로벌".getBytes(), 12, "SSN", 11, null, null, errbyte); encVal = vE7o9UDseJeZfcyXGlmrdA== 위와 같은 방법으로 coencbytes 함수를 사용하면 plug-in과 같은 hybrid 구성이 가능합니다. <함수사용 방법> - coencbytes ( Byte[] plainTxt : 암호화할 평문 byte array Int length : 암호화할 평문의 길이 String item : 보안정책 Item int act : reserved for Auditing String tblName: 로그를 위한 정보, Table 이름. NULL인 경우 로그정보 없음. String colName: 로그를 위한 정보, Column 이름. NULL인 경우 로그정보 없음. byte[] errcode : 에러코드를 리턴 리턴 값 String encOut : 암호화된 값. 호출 예 String plainTxt = “Plaint Text”; byte[] inByte = plainTxt.getBytes(); String encVal = CubeOneAPI.coencbytes(inByte,inByte.length,item,11,"tbl","col",errcode); - codecbyte String inval : 복호화할 암호문 String item : 보안정책 Item int act : reserved for Auditing String tblName : 로그를 위한 정보, Table 이름. NULL인 경우 로그정보 없음. String colName : 로그를 위한 정보, Column 이름. NULL인 경우 로그정보 없음. byte[] errcode : 에러코드를 리턴 리턴 값 byte[] decOut : 복호화 된 byte 값. 호출 예 byte[] decByte = CubeOneAPI.codecbyte(encVal,item,10,"tbl","col",errbyte); System.out.println(" decVal = ["+ new String(decByte) +"]"); |