它在做什么? (哈希,RAWTOHEX)

What is it doing? (HASH, RAWTOHEX)

我得到了这个 SQL 查询(使用 Netezza)并且有一个我以前没有使用过的函数 - 它 returns 一个密钥,但我不知道它从哪里得到它来自?:

select LOWER(SYSTEM..RAWTOHEX(SYSTEM..HASH(PROFILEID||'TK'||'CUST_V1',1))), ...

谁能解释一下它在做什么?

该代码使用 PROFILEID 中的值的 SHA-1 hash 与 'TKCUST_V1' 连接。 (为什么将其分成两个连接超出了我的范围。)

这可能 return 不是一个人类可读的结果,如文档所示:

select hash('Netezza',0);
       HASH
------------------
Ã
®dïO=±NEÂ
ÂÂÃ
(1 row)

因此创建者调用了 RAWTOHEX 将其从字节字符串转换为十六进制字符串。 RAWTOHEX 将 return 像这样的十六进制值。

8D812C9E8DB362FCB20E

最后,它被翻译成小写形式。