gpt4 book ai didi

sql - 我在oracle中的密码不会输出

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:44 26 4
gpt4 key购买 nike

我正在尝试使用 secret 密码输出我的程序。当我尝试运行我的代码时,它不起作用。

CREATE OR replace Procedure hiddenPasswords(
p_MA_ID IN MitarbeiterAccounts.MitarbetierAccountID%TYPE,
p_M_Login IN MitarbeiterAccounts.Mitarbeiter_Login%TYPE,
p_M_Password IN MitarbeiterAccounts.Mitarbeiter_Password%TYPE)


IS
BEGIN

INSERT INTO MitarbeiterAccounts(MitarbeiterAccountsID,
MitarbeiterAccounts_Login, Mitarbeiter_Password)
VALUES(p_MA_ID, p_M_Login, HASHBYTES('SHA2_512', p_M_Password));

END;
/

EXEC hiddenPasswords p_MA_ID = 4, p_M_Login = 'Admin' p_M_Password = N'123';

我得到 HASHBYTES 是无效的标识符

最佳答案

嗯,Oracle 没有任何名为HASHBYTES 的内置函数。它存在于 SQL SERVER 但不存在于 Oracle

如果您拥有相同的权限,则可以使用 DBMS_CRYPTO.HASH

DBMS_CRYPTO provides an interface to encrypt and decrypt stored data, and can be used in conjunction with PL/SQL programs running network communications

DBMS_CRYPTO

更新

例如,我在这里使用了RAW。您可以在上面的链接中查看其他重载函数,您也可以在其中使用BLOBCLOB

DECLARE
l_pwd VARCHAR2(19) := 'mysecretpassword';
l_ccn_raw RAW(128) := utl_raw.cast_to_raw(l_pwd);
l_encrypted_raw RAW(2048);
BEGIN
dbms_output.put_line('CC: ' || l_ccn_raw);

l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 1);
dbms_output.put_line('MD4: ' || l_encrypted_raw);

l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 2);
dbms_output.put_line('MD5: ' || l_encrypted_raw);

l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 3);
dbms_output.put_line('SH1: ' || l_encrypted_raw);
END;
/

输出

CC:  6D7973656372657470617373776F7264
MD4: BBBA2CBC2F6E0F158D06B34F819DB5F6
MD5: 4CAB2A2DB6A3C31B01D804DEF28276E6
SH1: 08CD923367890009657EAB812753379BDB321EEB

关于sql - 我在oracle中的密码不会输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55846776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com