我们想对从Oracle导出的文件中的用户密码进行加密,密码应该是md5crypt字符串,例如$1$salt$hash。
--PowerShell Git function example:
Get-Md5Crypt('sachiko')
$1$gfJ1cxju47$hLcMO7LZyA2Z74yTP.TmW1
我只是想知道“DBMS_CRYPTO”函数可以用盐生成MD5。到目前为止,还找不到任何好的例子。如果Oracle没有提供合适的函数或包,我们可以采用任何替代方式。
这是一个 oracle 函数,它将返回加密的 sha512 输出。如上所述,如果您计划保存该值,它应该位于定义为 RAW 的列中,即 hash_val RAW(700)。因为 DBMS_CRYPTO.HASH 返回 RAW 数据类型。
CREATE or REPLACE FUNCTION HASH_SHA512 (
psINPUT IN VARCHAR2
) RETURN VARCHAR2 AS
rHash RAW (512);
BEGIN
rHash := DBMS_CRYPTO.HASH (TO_CLOB (psINPUT),
dbms_crypto.HASH_SH512);
RETURN (LOWER (RAWTOHEX (rHash)));
END HASH_SHA512;
/
SELECT HASH_SHA512('testsha512 output') from dual
7a1b50a71560fb87ce90013b9845a36edf26964655930365aec44ea1f1a9f45763f082b148b8b99dc11b71ea5336e3a93f6382ced2a914434352c2ddb48ad69e