1
Oracle 데이터베이스의 인코딩 데이터에 문제가 있습니다. 다른 문자열 (마스크)을 사용하여 문자열을 xor 또는 base64로 인코딩하려고합니다. 내가 가진 PL/SQL에서Oracle에서 문자열을 인코딩하는 방법은 무엇입니까?
def encode_str(s, mask):
xor_mask = mask
while len(xor_mask) < len(s):
xor_mask += mask
chrs2 = []
for i in range(len(s)):
chrs2.append(chr(ord(s[i])^ord(xor_mask[i])))
s2 = ''.join(chrs2)
return base64.b64encode(s2)
#return binascii.hexlify(s2).lower()
:
create or replace function ht_encode(str in varchar2, mask in varchar2) return varchar2 as
xor_mask varchar2(2000);
result_s varchar2(2000);
i integer;
xx integer;
x char(10);
ch1 char(10);
ch2 char(10);
chrx varchar2(10);
begin
result_s := '';
xor_mask := mask;
while length(xor_mask) < length(str) loop
xor_mask := xor_mask || mask;
end loop;
for i in 1..length(str) loop
ch1 := substr(str, i, 1);
ch2 := substr(xor_mask, i, 1);
xx := BITXOR(ascii(ch1), ascii(ch2));
x := xx;
chrx := rawtohex(x);
--result_s := result_s || ':' || chrx;
--result_s := result_s || chrx;
-- HELP ME HERE!
end loop;
--return lower(utl_encode.base64_encode(result_s));
--return result_s || ' | ' || rawtohex(result_s);
-- HELP ME HERE!
return result_s;
end;
을 (bitxor http://forums.oracle.com/forums/thread.jspa?threadID=496773에서 온다) 내가 "만드는 방법을 모른다
처럼 파이썬에서이 보인다 이진 "문자열을 입력 한 다음 16 진수로 인코딩하거나 에서 base64로 인코딩하는 것이 좋습니다.
감사합니다. –