Oracle中有没有生成md5crypt字符串的函数或包?

问题描述 投票:0回答:1

我们想对从Oracle导出的文件中的用户密码进行加密,密码应该是md5crypt字符串,例如$1$salt$hash。

--PowerShell Git function example:
Get-Md5Crypt('sachiko')
$1$gfJ1cxju47$hLcMO7LZyA2Z74yTP.TmW1

我只是想知道“DBMS_CRYPTO”函数可以用盐生成MD5。到目前为止,还找不到任何好的例子。如果Oracle没有提供合适的函数或包,我们可以采用任何替代方式。

oracle function plsql crypt
1个回答
1
投票

这是一个 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

© www.soinside.com 2019 - 2024. All rights reserved.