오라클 관련 sql 질문 드립니다.

오라클 관련 sql 질문 드립니다.

QA

오라클 관련 sql 질문 드립니다.

본문

안녕하세요

오라클 관련 sql 질문드립니다.

maridb---

SELECT COUNT(*) AS cnt FROM member_garbage WHERE id= 'id' AND password=CONCAT('*', UPPER(SHA1(UNHEX(SHA1(('psswrord'))))))

---

 

이렇에 되어있는되요

오라클에서 처리 하니 오류가 나오네요

Warning: oci_error() expects parameter 1 to be resource, null given in ___경로

 

위 sql 문을 변경 해야 되나요?

문의 드립니다.

 

sql developer 에서 확인 하니

ORA-00904: "SHA1": 부적합한 식별자

 

이렇에 나오는 되요 

 

고수님들 조언 부탁드립니다.

 

 

 

 

이 질문에 댓글 쓰기 :

답변 2

당연하죠. 오라클에서는 DBMS_CRYPTO.HASH 함수를사용 하여 해시를 생성해야합니다.

SELECT COUNT(*) AS cnt FROM member_garbage WHERE id = 'id' AND password = UPPER(DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('psswrord'), DBMS_CRYPTO.HASH_SH1));

또는 

RAWTOHEX 함수를 사용여 데이터를 16진수 문자열로 변환하고자한다면,

SELECT COUNT(*) AS cnt FROM member_garbage WHERE id = 'id' AND password = UPPER(RAWTOHEX(DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('psswrord'), DBMS_CRYPTO.HASH_SH1)));

다음과 같은 방법도 있으니 참고하셔서 적용해보세요


SELECT COUNT(*) AS cnt
FROM member_garbage
WHERE id = 'id'
  AND password = UTL_RAW.CAST_TO_VARCHAR2(DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('psswrord'), 3));

DBMS_CRYPTO 이부분으로 하는되요 21C에서 패키지 설치 하는되요
오류가 나오더라구요

그래서 일 단 임시로 standard_hash 로 사용 합니다.

패키지 설치가 안되니 암호화 / 복호화 함수를 쓸수가 없네요
---
PACKAGE DBMS_SQLHASH에 대한 오류:

LINE/COL ERROR
-------- -----------------------------------------------------------------
4/12    PLS-00710: SUPPLEMENTAL_LOG_DATA 프래그마를 여기에 지정할 수
        없습니다.

DBA 권한이 없어서 그런것 같습니다.
DBA 권한이 있는 계정에서 다음과 같이 해보시겠어요?


-- DBMS_CRYPTO 패키지 설치
CONN / AS SYSDBA
@?/rdbms/admin/dbmsobtk.sql
@?/rdbms/admin/prvthshp.plb


SQL 실행

SELECT COUNT(*) AS cnt
FROM member_garbage
WHERE id = 'id'
  AND password = UTL_RAW.CAST_TO_VARCHAR2(DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('psswrord'), 3));


또는 다음과 같이 실행해보세요

SELECT COUNT(*) AS cnt
FROM member_garbage
WHERE id = 'id'
  AND password = UTL_RAW.CAST_TO_VARCHAR2(DBMS_CRYPTO.HASH_SH1(UTL_RAW.CAST_TO_RAW('psswrord')));

답변을 작성하시기 전에 로그인 해주세요.
전체 954
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT