ORACLE MD5中文比较

ORACLE MD5中文

首先查询数据库字符集, 点击进入传送门

select * from nls_database_parameters WHERE PARAMETER LIKE '%CHARACTER%'

NLS_CHARACTERSET	ZHS16GBK  ---这里是GBK
NLS_NCHAR_CHARACTERSET	AL16UTF16  ---这里是UTF16

根据字符集那篇文章介绍,我们做一个例子,区别数据库字符集国家字符集

---表字段
"ID" NUMBER, 
"ITEM_VARCHAR2" VARCHAR2(100), 
"ITEM_CLOB" CLOB, 
"ITEM_NVARCHAR2" NVARCHAR2(100)

--表查询
SELECT ID, ITEM_VARCHAR2, ITEM_CLOB, ITEM_NVARCHAR2 FROM TEST.AA_TEST3

ID  ITEM_VARCHAR2   ITEM_CLOB    ITEM_NVARCHAR2 
2	1	        a	       a
3	中国            中国	      中国

MD5方式最好是用LOWER( RAWTOHEX( DBMS_CRYPTO.HASH( utl_raw.cast_to_raw(COLUMN2), 2 ))) 

因为DBMS_OBFUSCATION_TOOLKIT.MD5函数后期会废弃,在上一篇文章最底部有介绍,进入后搜索关键字

“使用DBMS_CRYPTO包” 直达目标位置。

--##对(VARCHAR2)字段的中文进行MD5验证
SELECT 
ITEM_VARCHAR2
,LOWER(RAWTOHEX(DBMS_CRYPTO.HASH(utl_raw.cast_to_raw(ITEM_VARCHAR2),2))) AS NORMAL
,LOWER(RAWTOHEX(DBMS_CRYPTO.HASH(utl_raw.cast_to_raw(CONVERT(ITEM_VARCHAR2,'UTF8')),2))) AS UTF8
FROM TEST.AA_TEST3

ITEM_VARCHAR2    NORMAL                             UTF8
1	        c4ca4238a0b923820dcc509a6f75849b    c4ca4238a0b923820dcc509a6f75849b
中国	        cf0832dedf7457bbcbfa00bbd87b300a    c13dceabcb143acd6c9298265d618a9f


--##对(CLOB)字段的中文进行MD5验证
SELECT 
ITEM_CLOB
,LOWER(RAWTOHEX(DBMS_CRYPTO.HASH(ITEM_CLOB))) AS NORMAL
,LOWER(RAWTOHEX(DBMS_CRYPTO.HASH(CONVERT(ITEM_CLOB, 'UTF8'),2))) AS UTF8
FROM TEST.AA_TEST3

ITEM_CLOB          NORMAL                                   UTF8
a	        0cc175b9c0f1b6a831c399e269772661    0cc175b9c0f1b6a831c399e269772661
中国        	c13dceabcb143acd6c9298265d618a9f    c13dceabcb143acd6c9298265d618a9f

--##对(NVARCHAR2)字段的中文进行MD5验证
SELECT 
ITEM_NVARCHAR2
,LOWER(RAWTOHEX(DBMS_CRYPTO.HASH(ITEM_NVARCHAR2,2))) AS NORMAL
,LOWER(RAWTOHEX(DBMS_CRYPTO.HASH(CONVERT(ITEM_NVARCHAR2, 'UTF8'),2))) AS UTF8
FROM TEST.AA_TEST3

ITEM_NVARCHAR2         NORMAL                                   UTF8
a	        760f753576f2955b0074758acb4d5fa6	0cc175b9c0f1b6a831c399e269772661
中国	        0414f3d8e26db6de83134ae76c503dcd	c13dceabcb143acd6c9298265d618a9f

找一个在线MD5网站验证下

总结:

中国  这2个字的UTF8的MD5是c13dceabcb143acd6c9298265d618a9f

 

中国 MD5
数据类型NORMALUTF8
VARCHAR(GBK)cf0832dedf7457bbcbfa00bbd87b300a    c13dceabcb143acd6c9298265d618a9f
NVARCHAR(UTF16)0414f3d8e26db6de83134ae76c503dcd c13dceabcb143acd6c9298265d618a9f
CLOB(UTF8)c13dceabcb143acd6c9298265d618a9fc13dceabcb143acd6c9298265d618a9f

这也验证的ORA数据类型字符集问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值