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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
오라클 관련 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')));

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

회원로그인

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