需要oracle函数将字符串转换为字节数组

需要oracle函数将字符串转换为字节数组,oracle,oracle10g,Oracle,Oracle10g,我有一个专栏: LOGIN_PWD -> RAW(256 BYTE) 我必须使用insert查询将哈希密码字符串插入此列。那么是否有任何oracle函数可以将字符串转换为字节,如 INSERT INTO TABLE_NAME (LOGIN_PWD) VALUES (convert.toBytes('hashed password')); 我使用java程序在本地计算机上使用string.getBytes()methode实现了这一点,但对于其他环境,我不能使用相同的程序,需要使用

我有一个专栏:

LOGIN_PWD  ->  RAW(256 BYTE) 
我必须使用insert查询将哈希密码字符串插入此列。那么是否有任何oracle函数可以将字符串转换为字节,如

INSERT INTO TABLE_NAME (LOGIN_PWD) VALUES (convert.toBytes('hashed password'));

我使用java程序在本地计算机上使用string.getBytes()methode实现了这一点,但对于其他环境,我不能使用相同的程序,需要使用query实现这一点如果您的要求像您所说的那样简单,那么您可以使用:

例如,对于使用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
它与我从Java中相同散列值的
getBytes()
中获得的内容相匹配

如果出于某种原因想将其恢复为文本,可以使用:

从表名称中选择UTL_RAW.CAST_TO_VARCHAR2(LOGIN_PWD)

UTL_RAW.CAST_TO_VARCHAR2(LOGIN_PWD)
-----------------------------------
6a25a2b265d917ea91447daa81b2506d   

你是说类似的东西吗?我不确定您是否同时尝试散列,或者值是否已经散列。是的,我的意思是像cast_to_字节这样的内容,并且值已经散列
UTL_RAW.CAST_TO_VARCHAR2(LOGIN_PWD)
-----------------------------------
6a25a2b265d917ea91447daa81b2506d