función hash()
La función hash() devuelve un hash de 128 bits, 160 bits o 256 bits de los datos de entrada, en función del algoritmo que se seleccione.
Esta función proporciona dos valores de retorno distintos entre 2128 y 2256, y está pensada a efectos de cifrado. La función casi nunca produce la misma salida para dos entradas diferentes.
- La función hash() es, por lo general, mucho más lenta que la función hash4() o hash8() a la hora de realizar cálculos. Asimismo, la función hash() devuelve un valor varchar binario de 16 a 32 bytes; la comparación de los valores varchar binarios lleva más tiempo que comparar los valores enteros y, por lo tanto, aumenta el tiempo de ejecución de las consultas. Si necesita velocidad en la generación de hash y en la comparación, o si lo único que se necesita es una función de búsqueda simple en una dirección, utilice la función hash4() o hash8() en lugar de la función hash().
- Las columnas con valores hash de la función ' hash() ' no pueden asignarse a zonas y no utilizan otras técnicas de rendimiento de consulta Netezza Performance Server.
Sintaxis
varchar = hash(varchar data [, int algorithm]);
nvarchar = hash(nvarchar data [, int algorithm]);
El valor data especifica el
varchar o nvarchar al que aplicar la operación hash.
El valor ' algorithm ' es un código entero, que por defecto es 0. Los algoritmos disponibles y los tamaños de los valores hash resultantes se muestran en la siguiente tabla:
| Código | Descripción | Resultado |
|---|---|---|
| 0 | MD5 | hash de 128 bits |
| 1 | SHA-1 | hash de 160 bits |
| 2 | SHA-2 | hash de 256 bits |
Tanto el algoritmo MD5 y el Secure Hash Algorithm (SHA) son algoritmos que procesan mensajes que provienen de MD4. Las funciones hash SHA son el resultado del trabajo de la National Security Agency (NSA) para suministrar potentes funciones de hash criptográficas.
Devuelve
La función devuelve los datos tras la operación hash. El tipo de devolución es un valor varchar binario de 16 a 32 bytes.
Ejemplo
select hash('Netezza',0);
HASH
------------------
Ã
®dïO=±NEÂ
ÂÂÃ
(1 row)
RAWTOHEX para obtener el valor hash real en formato de texto.SYSTEM.ADMIN(ADMIN)=> select rawtohex (hash('Netezza',0));
RAWTOHEX
----------------------------------
C5AE64EF4F3D9EB14E4503857F868EC3
(1 row)
SYSTEM.ADMIN(ADMIN)=>