HASH_MD5

雜湊函數會傳回輸入資料的 128 位元、160 位元、256 位元或 512 位元雜湊,視選取的演算法而定。

讀取語法圖跳過視覺化語法圖 HASH_MD5HASH_SHA1HASH_SHA256HASH_SHA512 ( 表示式 )
表示式
代表要雜湊的字串值的表示式。 此表示式可以傳回任何內建或特殊資料類型。 特殊類型會被視為其來源資料類型。 如果值是數值、日期時間 變更開始或布林變更結束,則在評估函數之前會隱含地強制轉型為 VARCHAR。 如果值是 XML ,則會在評估函數之前執行隱含的 XMLSERIALIZE 至 CLOB (2G) CCSID 1208。
表 1 顯示每一個受支援演算法的相關資訊。
表 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