Oracle加解密_解决编码问题_解决中文截断问题
来源:互联网 发布:和外国人谈恋爱知乎 编辑:程序博客网 时间:2024/05/20 04:11
oracle中使用des进行加密,如果oracle编码UTF-8时,会出现编码错误。要进行转码。
网上查找的代码都会出现 中文截断的现象,比如 "加密这个1",会把“1”漏了加密,这是因为使用了length()函数的原因,使用lengthb()则不会出现问题
编码方法如下:
CREATE OR REPLACE function encrypt_des(p_text varchar2, p_key varchar2) return varchar2 isv_text varchar2(4000);v_enc varchar2(4000);raw_input RAW(128) ;key_input RAW(128) ;decrypted_raw RAW(2048);begindbms_output.put_line(p_text);v_text := rpad( p_text, (trunc(lengthb(p_text)/8)+1)*8, chr(0));dbms_output.put_line(v_text);raw_input := UTL_I18N.STRING_TO_RAW(v_text,'ZHS16GBK');key_input := UTL_I18N.STRING_TO_RAW(p_key,'ZHS16GBK');dbms_obfuscation_toolkit.DESEncrypt(input => raw_input,key => key_input,encrypted_data =>decrypted_raw);v_enc := rawtohex(decrypted_raw);dbms_output.put_line(v_enc);return v_enc;end;/
对应的解码方法:
CREATE OR REPLACE function decrypt_des(p_text varchar2, p_key varchar2) return varchar2 isp_text_raw RAW(2000);p_key_raw RAW(2000);v_text_raw RAW(2000);v_text varchar2(2000);beginp_text_raw := HEXTORAW(p_text);p_key_raw := UTL_I18N.STRING_TO_RAW(p_key, 'ZHS16GBK');dbms_obfuscation_toolkit.DESDECRYPT(input => p_text_raw, key =>p_key_raw, decrypted_data=> v_text_raw);v_text := UTL_I18N.RAW_TO_CHAR(v_text_raw, 'ZHS16GBK');dbms_output.put_line(v_text);return v_text;end;/
阅读全文
0 0
- Oracle加解密_解决编码问题_解决中文截断问题
- ArcGIS10.3_解决属性表中文乱码问题
- 解决加解密illegal key size问题
- 解决中文编码的问题
- 解决SecureCRT中文编码问题
- VIM解决中文编码问题
- VIM解决中文编码问题
- 过滤器解决中文编码问题
- VIM解决中文编码问题
- 过滤器解决中文编码问题
- python解决中文编码问题
- 未解决的加密解密编码问题?
- 修改ORACLE客户端字符集编码解决中文乱码问题
- 解决Python中读Oracle数据库的中文编码问题
- oracle 编码问题 讨论解决
- Dynamic_Performance_Tables_not_accessible_问题_解决不能动态统计
- 多线程_互斥锁解决买票问题
- 通过Base64加密解密解决RSA中文解密乱码问题
- LruCache 源码解析
- PTA-Huffman Codes 哈夫曼编码 C语言实现
- Highways
- [面试]简介nginx的fcgi
- 宿主机与docker容器之间免密码ssh链接,容器与容器之间ssh免密码连接
- Oracle加解密_解决编码问题_解决中文截断问题
- LeetCode-62. Unique Paths
- Agri-Net
- java.nio.channels.CancelledKeyException
- Data Analytics for Beginners:第二节
- oracle中临时表的创建【会话级别】
- 3.2 Molar Mass UVa1586
- PTA-愿天下有情人都是失散多年的兄妹 C语言实现
- MD5编码