오라클에 내장된 해시 기능이 있습니까?
중복 가능성:
PL/SQL에 해시 함수가 있습니까?
Oracle 11g에 NCLOB 데이터베이스 유형이 있는 열이 있습니다.내용에 대한 해시 값을 얻어야 합니다.내장된 Oracle 함수나 Oracle의 PL/SQL SP 내부를 사용하여 이 작업을 수행하려면 어떻게 해야 합니까?
예: 해시 및 암호화(관련은 있지만 완전히 동일하지는 않음)는 모두 SYS 패키지 DBMS_CRYPTO를 통해 수행됩니다.
단순 SHA-1 해싱
l_hash := dbms_crypto.hash( l_src, dbms_crypto.HASH_SH1 );
단순 MD5 해싱
l_hash := dbms_crypto.hash( l_src, dbms_crypto.HASH_MD5 );
dbms_crypto.hash()의 개요
RAW, BLOB 및 CLOB 유형을 허용하도록 hash() 함수가 오버로드됩니다.원시 입력 유형에 대한 단순성 데이터 변환에 따르면 RAW, CHAR, VARCHAR2, NCAR, NVARCHAR2, LONG, BLOB가 있습니다.RAW/암묵적 RAW 변환, BLOB 및 CLOB에서 다루지 않는 다른 모든 데이터 유형(DATE, TIME 등)은 먼저 TO_CHAR()를 통과해야 합니다.
dbms_crypto.hash()는 다음 해싱 알고리즘을 지원합니다.
- HASH_MD4
- HASH_MD5
- HASH_SH1
비밀번호: 만일의 경우
암호를 저장하는 경우 암호화 해시(md5, sha-1 등) 대신 암호 저장 해시(bcrypt, PBKDF2 또는 scrypt)를 사용하는 것이 좋습니다.다른 점은 암호 저장 해시는 해독하는 데 시간이 걸리는 반면 암호화 해시는 신속하게 수행해야 한다는 것입니다.브루트 포스를 통해 시스템의 암호 목록을 공격할 때 암호화 알고리즘을 통해 전달되는 솔트 값을 해제하려고 할 때 시간이 훨씬 더 많이 소요됩니다.단일 값에 암호 해시를 사용하면 전체 암호 목록에서 최대 100ms(단일 인증 로그인의 경우는 많지 않음)가 소요될 수 있지만, 브루트 포스(암호당 수백만 번/수십억 번의 시도)는 매우 느립니다.
Oracle이 싫어하는 암호 해시
Oracle에서 제공하는 패키지 중 암호 해싱 지원 기능을 제공하는 패키지에 대해서는 전혀 알지 못합니다.그러나 'loadjava'를 사용하고 Oracle의 RDBMS와 함께 실행되는 JVM 내에 Java bcrypt 구현을 배치하면 이를 수행할 수 있습니다. 그런 다음 PL/SQL 래퍼를 사용하여 bcrypt를 구현하는 Java 클래스를 호출할 수 있습니다.중간 계층을 사용하는 경우 해당 언어(.NET, PHP, Perl, Ruby, Python, Java 등)을 실행하고 'loadjava'를 사용하려고 시도하지 않습니다.
암호화 해시 말입니다!
필요한 해시가 dbms_crypto.hash()에 포함되지 않는 경우 dbms_crypto.encrypt를 통한 암호화를 찾을 수 있습니다. 이 암호화는 다음 유형을 사용한다는 점을 제외하고 매우 유사하게 작동합니다.
- 암호화_DES
- 암호화_3DES_2KEY
- 암호화_3DES
- 암호화_AES
- 암호화_PBE_MD5DES
- 암호화_AES128
- 암호화_AES192
- 암호화_AES256
다음은 DBMS_CRYPTO에 대한 11gR2 전체 설명서입니다.다른 모든 버전은 tahiti.oracle.com 을 통해 이용할 수 있습니다.버전을 클릭한 다음 'dbms_crypto'를 검색하면 됩니다.
언급URL : https://stackoverflow.com/questions/11075452/does-oracle-have-any-built-in-hash-function
'programing' 카테고리의 다른 글
git 하위 디렉토리에서 pip을 사용하여 설치하려면 어떻게 해야 합니까? (0) | 2023.07.21 |
---|---|
성능 - 스프링 부팅 - 서버 응답 시간 (0) | 2023.07.21 |
파이썬과 Numpy를 사용하여 r-제곱을 계산하려면 어떻게 해야 합니까? (0) | 2023.07.21 |
부울 ID == 참 대 참 (0) | 2023.07.21 |
REST API용 spring-boot-starter-web과 spring-boot-starter-data-rest의 차이점 (0) | 2023.07.21 |