해시() 함수
' hash() ' 함수는 선택한 알고리즘에 따라 입력 데이터의 128비트, 160비트 또는 256비트 해시를 반환합니다.
이 함수는 2개의128' - 2개의256 구분되는 반환값을 제공하며 암호화 목적으로 사용됩니다. 이 함수는 두 개의 다른 입력에 대해 동일한 출력을 생성하는 경우는 거의 없습니다.
' hash() ' 기능을 사용하기 전에 다음 동작에 유의하세요:
- ' hash() ' 함수는 일반적으로 계산을 수행할 때 ' hash4() ' 또는 ' hash8() ' 함수보다 훨씬 느립니다. 또한 ' hash() ' 함수는 16~32바이트의 이진 바이트 값을 반환하는데, 이진 바이트 값을 비교하는 것은 정수 값을 비교하는 것보다 시간이 오래 걸리므로 쿼리 실행 시간이 늘어납니다. 해시 생성 및 비교에 속도가 필요하거나 간단한 단방향 조회 기능만 필요한 경우, ' hash() ' 함수 대신 ' hash4() ' 또는 ' hash8() ' 함수를 사용하세요.
- ' hash() ' 함수의 해시 값이 있는 열은 영역 매핑할 수 없으며 다른 Netezza Performance Server 쿼리 성능 기술을 사용할 수 없습니다.
구문
' hash() ' 함수의 구문은 다음과 같습니다:
varchar = hash(varchar data [, int algorithm]);
nvarchar = hash(nvarchar data [, int algorithm]);
' data ' 값은 해시할 varchar 또는 nvarchar 값을 지정합니다.
' algorithm ' 값은 정수 코드이며 기본값은 0입니다. 사용 가능한 알고리즘과 결과 해시 값의 크기는 다음 표에 나와 있습니다:
| 코드 | 설명 | 결과 |
|---|---|---|
| 0 | MD5 | 128비트 해시 |
| 1 | SHA-1 | 160비트 해시 |
| 2 | SHA-2 | 256비트 해시 |
MD5 알고리즘과 보안 해시 알고리즘(SHA)은 MD4 파생된 메시지 다이제스트 알고리즘입니다. SHA 해시 함수는 강력한 암호화 해싱 기능을 제공하기 위한 미국 국가안보국(NSA)의 노력의 결과물입니다.
중요: nvarchar 값을 처리하려면 ' hash() ' 함수 대신 ' hash_nvarchar() ' 함수를 사용해야 합니다. ' hash_nvarchar() ' 함수는 입력된 nvarchar 데이터에 대한 varchar 값을 반환합니다. ' hash() ' 함수는 이전 버전 및 결과와의 호환성을 위해 유지되지만 ' hash('NVARCHAR') 함수 값을 저장하는 테이블 및 뷰는 로드 및 통계 생성 작업 중에 문제가 발생할 수 있습니다.
반환
이 함수는 해시된 데이터를 반환합니다. 반환 유형은 16~32바이트 바이너리 바이트 값입니다.
예
select hash('Netezza',0);
HASH
------------------
Ã
®dïO=±NEÂ
ÂÂÃ
(1 row)
중요:
실제 해시값을 텍스트 형식으로 얻으려면
RAWTOHEX 을 사용해야 합니다.SYSTEM.ADMIN(ADMIN)=> select rawtohex (hash('Netezza',0));
RAWTOHEX
----------------------------------
C5AE64EF4F3D9EB14E4503857F868EC3
(1 row)
SYSTEM.ADMIN(ADMIN)=>