source

PL/SQL에 해시 함수가 있습니까?

nicesource 2023. 10. 1. 19:32
반응형

PL/SQL에 해시 함수가 있습니까?

저는 varchar의 해시를 얻기 위해 PL/SQL에서 해시 함수를 찾고 있습니다.오라클 10에서 dbms_crypto라는 패키지를 찾았는데 dbms_crypto 함수가 있습니다.hash와 심지어 다른 패키지 dbms_sqlhash.getHash도 있지만, 그들에게 전화를 걸었지만, 그들을 찾을 수 없다는 메시지가 왔습니다.

그들을 어떻게 불러야 하는지 아는 사람?다른 소포는 없습니까?

내 코드는 여기 있습니다.

DECLARE
 l_textToHash VARCHAR2(19) := 'toto123';
 l_ccn_raw RAW(128) := utl_raw.cast_to_raw(l_textToHash);
 l_encrypted_raw RAW(2048);
BEGIN
  dbms_output.put_line('CC:  ' || l_ccn_raw);
  l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 3);
  dbms_output.put_line('SH1: ' || l_encrypted_raw);
END;
/

여기 메시지가 있습니다.

Error starting at line 1 in command:
DECLARE
 l_textToHash VARCHAR2(19) := 'toto123';
 l_ccn_raw RAW(128) := utl_raw.cast_to_raw(l_textToHash);
 l_encrypted_raw RAW(2048);
BEGIN
  dbms_output.put_line('CC:  ' || l_ccn_raw);
  l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 3);
  dbms_output.put_line('SH1: ' || l_encrypted_raw);
END;
Error report:
ORA-06550: line 7, column 22:
PLS-00201: identifier 'DBMS_CRYPTO' must be declared
ORA-06550: line 7, column 3:
PL/SQL: Statement ignored
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:

감사합니다!

해시를 생성하려는 이유에 따라 내장 함수 ORA_해시(HASH)로 충분할 수 있습니다.

SQL> select ora_hash( 'fuzzy bunny' ) from dual;

ORA_HASH('FUZZYBUNNY')
----------------------
            2519249214

암호학적으로 안전한 해시 함수가 필요하다면 저는 이것을 사용하려고 하지 않을 것입니다.하지만 간단한 해시만 있으면 충분합니다.

오라클 12c에서는 STANDARD_라는 함수를 사용할 수 있습니다.해시.


Oracle 11g 이하에서는 연결 중인 사용자에게 부여된 적절한 권한이 있는지 확인합니다.DBA와 상의하여 SYS에 대한 실행 권한을 추가합니다.DBMS_CRIPTO 패키지.

오라클은 오라클 데이터베이스를 사용하여 해시 및 암호화된 데이터를 처리하는 방법에 대한 유용한 가이드를 제공합니다.

DBMS_CRIPto를 지원하지 않는 이전 버전의 데이터베이스에 있는 경우 DBMS_OBFUSCATION_TOOLkit을 사용해 볼 수도 있습니다.

언급URL : https://stackoverflow.com/questions/5595774/is-there-any-hash-function-in-pl-sql

반응형