如果您的要求很簡單,只要你說,那麼你可以使用UTL_RAW.CAST_TO_RAW
function:
INSERT INTO TABLE_NAME (LOGIN_PWD)
VALUES (UTL_RAW.CAST_TO_RAW('hashed password'));
SQL Fiddle demo。
用,例如,普通字符串「散列密碼」使用MD5,這是6a25a2b265d917ea91447daa81b2506d
,存儲在表的原始值被散列:
SELECT DUMP(LOGIN_PWD) FROM TABLE_NAME;
DUMP(LOGIN_PWD)
------------------------------------------------------------------------------------------------------------------
Typ=23 Len=32: 54,97,50,53,97,50,98,50,54,53,100,57,49,55,101,97,57,49,52,52,55,100,97,97,56,49,98,50,53,48,54,100
它匹配我從getBytes()
得到相同Java中的散列值。
如果你想要得到它回到文本出於某種原因,你可以使用UTL_RAW.CAST_TO_VARCHAR2
:
SELECT UTL_RAW.CAST_TO_VARCHAR2(LOGIN_PWD)FROM TABLE_NAME;
UTL_RAW.CAST_TO_VARCHAR2(LOGIN_PWD)
-----------------------------------
6a25a2b265d917ea91447daa81b2506d
你的意思是這樣[cast_to_raw(http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/u_raw.htm#sthref17499)?我不太確定你是否試圖在同一時間散列,或者如果這個值已經散列了。 –
是的,我的意思是說像cast_to_bytes和價值已經hased –