关于oracle中数据保存的问题 如题:在javaWEB开发中,用户个人信息保存至数据库中,如何以暗文显示,如密码,个人资料等,在oracle中显示**符号?? 坐等。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你不能在客户端加密之后(如abc,加密之后为fjlsadfjajfasjfsdaf)再保存到数据库么 就是那个加密啊,在javaWEB程序上如何加密呢? 本人刚学,求帮助。。 java基本上常用的加密方式都是支持的,网上查下就好了,资料很多的。 还有很多第三方的jar可以用的,apache就有。。 oracle数据加密包以下是包的代码和说明:包的声明:create or replace package PG_ENCRYPT_DECRYPT is function GEN_RAW_KEY return raw; function encrypt_data(p_text in varchar2) return varchar2; function encrypt_data(p_num in number) return varchar2; function decrypt_data(p_text varchar2) return varchar2;end;包的实现:create or replace package body PG_ENCRYPT_DECRYPT is/*Creating function GEN_RAW_KEY to get key*/ function GEN_RAW_KEY return raw as rawkey raw(240) := ''; fhandle utl_file.file_type; fp_buffer varchar2(4000); begin fhandle := utl_file.fopen ('UTL_FILE_DIR','test.abc', 'r'); utl_file.get_line (fhandle , fp_buffer); rawkey :=fp_buffer; utl_file.fclose(fhandle); return rawkey; end;/*Creating function encrypt_data,encrypt character*/ function encrypt_data(p_text in varchar2) return varchar2 as v_text varchar2(4000); v_enc varchar2(4000); p_key varchar2(4000); begin v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0)); p_key := GEN_RAW_KEY; sys.dbms_obfuscation_toolkit.desencrypt( input_string => v_text, key_string => p_key, encrypted_string=>v_enc); return v_enc; end;/*Creating function encrypt_data,encrypt number*/ function encrypt_data(p_num in number) return varchar2 as v_text varchar2(4000); v_enc varchar2(4000); p_key varchar2(4000); p_text varchar2(4000); begin p_text := to_char(p_num); v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0)); p_key := GEN_RAW_KEY; sys.dbms_obfuscation_toolkit.desencrypt( input_string => v_text, key_string => p_key, encrypted_string=>v_enc); return v_enc; end;/*Creating function decrypt_data,decrypt character*/ function decrypt_data(p_text varchar2) return varchar2 as v_text varchar2(4000); p_key varchar2(4000); begin p_key := GEN_RAW_KEY; sys.dbms_obfuscation_toolkit.desdecrypt( input_string => p_text, key_string => p_key, decrypted_string=> v_text); return rtrim(v_text,chr(0)); end;end;下面举例比如:字符数据加密SQL> desc empName Type Nullable Default Comments------------ ------------ -------- ------- --------ENO VARCHAR2(10) Y ENAME VARCHAR2(64) Y ENCRYPT_NAME VARCHAR2(64) Y SQL> select *from emp;ENO ENAME ENCRYPT_NAME---------- ---------------------------------------------------------------- ----------------------------------------------------------------0004 c++ 00001 sqlee 00002 lee 00003 oracle SQL> update emp set ENCRYPT_NAME = PG_ENCRYPT_DECRYPT.encrypt_data(ename);4 rows updatedSQL> commit;Commit completeSQL> select *from emp;ENO ENAME ENCRYPT_NAME---------- ---------------------------------------------------------------- ----------------------------------------------------------------0004 c++ 膉??.?00001 sqlee 鍀DkR徤a00002 lee F{蘱j000003 oracle ?(?嫄? oracle执行外部的sql文件??? 如何编写SQL语句? 求教,ORACLE高手存储过程返回记录集 关于字符转换的问题 该Oracle统计的SQL如何写 这个SQL怎么写?高手请进 下面那种执行的速度快!? 创建job 报错 PLS-00103: 出现符号 "MI"在需要下列之一时: 我的机器安装Oracle出现问题,在日文系统下安装到一定时候就不能够进行,在中文系统下安装正常,那位高手遇到过类似的问题,或者那位大虾 怎么在VC做的程序中增加备份ORALCE的功能,就象SQLSERVER中调用DUMP。 求教:字符串按顺序连接 oracle开发书籍推荐
oracle数据加密包以下是包的代码和说明:包的声明:
create or replace package PG_ENCRYPT_DECRYPT is
function GEN_RAW_KEY return raw;
function encrypt_data(p_text in varchar2) return varchar2;
function encrypt_data(p_num in number) return varchar2;
function decrypt_data(p_text varchar2) return varchar2;
end;包的实现:
create or replace package body PG_ENCRYPT_DECRYPT is
/*Creating function GEN_RAW_KEY to get key*/
function GEN_RAW_KEY return raw
as
rawkey raw(240) := '';
fhandle utl_file.file_type;
fp_buffer varchar2(4000);
begin
fhandle := utl_file.fopen ('UTL_FILE_DIR','test.abc', 'r');
utl_file.get_line (fhandle , fp_buffer);
rawkey :=fp_buffer;
utl_file.fclose(fhandle);
return rawkey;
end;
/*Creating function encrypt_data,encrypt character*/
function encrypt_data(p_text in varchar2) return varchar2
as
v_text varchar2(4000);
v_enc varchar2(4000);
p_key varchar2(4000);
begin
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
p_key := GEN_RAW_KEY;
sys.dbms_obfuscation_toolkit.desencrypt(
input_string => v_text,
key_string => p_key,
encrypted_string=>v_enc);
return v_enc;
end;
/*Creating function encrypt_data,encrypt number*/
function encrypt_data(p_num in number) return varchar2
as
v_text varchar2(4000);
v_enc varchar2(4000);
p_key varchar2(4000);
p_text varchar2(4000);
begin
p_text := to_char(p_num);
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
p_key := GEN_RAW_KEY;
sys.dbms_obfuscation_toolkit.desencrypt(
input_string => v_text,
key_string => p_key,
encrypted_string=>v_enc);
return v_enc;
end;
/*Creating function decrypt_data,decrypt character*/
function decrypt_data(p_text varchar2) return varchar2
as
v_text varchar2(4000);
p_key varchar2(4000);
begin
p_key := GEN_RAW_KEY;
sys.dbms_obfuscation_toolkit.desdecrypt(
input_string => p_text,
key_string => p_key,
decrypted_string=> v_text);
return rtrim(v_text,chr(0));
end;
end;
下面举例
比如:字符数据加密
SQL> desc emp
Name Type Nullable Default Comments
------------ ------------ -------- ------- --------
ENO VARCHAR2(10) Y
ENAME VARCHAR2(64) Y
ENCRYPT_NAME VARCHAR2(64) Y
SQL> select *from emp;ENO ENAME ENCRYPT_NAME
---------- ---------------------------------------------------------------- ----------------------------------------------------------------
0004 c++
00001 sqlee
00002 lee
00003 oracle SQL> update emp set ENCRYPT_NAME = PG_ENCRYPT_DECRYPT.encrypt_data(ename);4 rows updatedSQL> commit;Commit completeSQL> select *from emp;ENO ENAME ENCRYPT_NAME
---------- ---------------------------------------------------------------- ----------------------------------------------------------------
0004 c++ 膉??.?
00001 sqlee 鍀DkR徤a
00002 lee F{蘱j0
00003 oracle ?(?嫄?