HASH_MD5
雜湊函數會傳回輸入資料的 128 位元、160 位元、256 位元或 512 位元雜湊,視選取的演算法而定。
- 表示式
- 代表要雜湊的字串值的表示式。 此表示式可以傳回任何內建或特殊資料類型。 特殊類型會被視為其來源資料類型。 如果值是數值、日期時間
或布林
,則在評估函數之前會隱含地強制轉型為 VARCHAR。 如果值是 XML ,則會在評估函數之前執行隱含的 XMLSERIALIZE 至 CLOB (2G) CCSID 1208。
表 1 顯示每一個受支援演算法的相關資訊。
| 功能名稱 | 演算法 | 結果大小 | 回覆值數目 | 結果長度 | 在 HASH 函數中使用的對應演算法值 |
|---|---|---|---|---|---|
| HASH_MD5 | MD5 | 128 位元 | 2128 | 16 | 0 |
| HASH_SHA1 | SHA1 | 160 位元 | 2160 | 20 | 1 |
| HASH_SHA256 | SHA-256 | 256 位元 | 2256 | 32 | 2 |
| HASH_SHA512 | SHA-512 | 512 位元 | 2512 | 64 | 3 |
結果的資料類型是 BINARY ,其結果長度由函數名稱所決定,如 表 1所示。
如果引數可以是空值,則結果可以是空值。 如果引數是空值,則結果是空值。
附註
空格會影響雜湊; 具有尾端空白的固定長度字串會產生與沒有尾端空白的可變長度字串不同的結果。 表示式 的 CCSID 會導致比較等於產生不同結果值的字串。
在 SHA1 和 MD5 演算法中都已識別安全缺失。 您可以在適用的相符性文件中找到可接受的雜湊演算法,例如國家標準與技術機構 (NIST) 特殊出版品 800-131A。
語法替代: 具有單一引數的 HASH 函數類似於 HASH_MD5。 可以為 HASH 指定第二個引數,以指出要使用的演算法。 演算法值如 表 1所示。 第二個引數可以是必須傳回任何內建數值、字串或圖形字串資料類型的值的表示式。 在評估函數之前,會將字串引數轉換為整數。 HASH 的結果資料類型為 VARBINARY。 如果只有一個引數,則結果的長度屬性為 16。 如果第二個引數由整數常數指定,則結果的長度屬性是 表 1中顯示的結果長度。 否則,結果的長度屬性為 64。 如果任一引數可以是空值,則結果可以是空值。 如果任一引數是空值,則結果是空值。
範例
- 使用 MD5 演算法來產生雜湊資料。
會傳回下列值:VALUES HEX(HASH_MD5('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))5156BECBC019E3F0F9520B143435427E - 使用 SHA1 演算法來產生雜湊資料。
會傳回下列值:VALUES HEX(HASH_SHA1('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))55324E3DD1FA95040F65709D193E82575237EF86 - 使用 SHA-256 演算法來產生雜湊資料。
會傳回下列值:VALUES HEX(HASH_SHA256('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))011F7AD1ECD8E5A4CC8533D1ECD497DC5D95E848B14F8BCFD56A73D7F41843E2 - 使用 SHA-512 演算法來產生雜湊資料。
會傳回下列值:VALUES HEX(HASH_SHA512('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))D8AC4B838921A83C4207B62B8B63628F8FBE836EB012167310331FFC070FC977D224F39148 8806CB1FE2AA9C8C739E5104CAD1C4C6E97967DA6223D657CD9295
