# Hash256 - 指令碼與圖表函數

Hash256() 會傳回組合輸入運算式值的 256 位元雜湊值。結果為包含 43 個字元的字串。 雜湊值對於遮罩個人識別資訊 (PII) 很實用，例如客戶姓名、社會安全號碼或帳號。

語法：

Hash256(expr{, expression})

傳回的資料類型： 字串

引數

| 引數 | 描述 |
| --- | --- |
| expr | 要評估的字串。 |

範例：圖表運算式

| 範例 | 結果 |
| --- | --- |
| `Hash256( 'abc', 'xyz', '123' )` | 傳回 ``MA&5]6+3=:>;>G%S<U*S2I:`=X*A.IO*8N\%Y7Q;YEJ`` |
| `Hash256( Region, Year, Month )`<br><br>Note: `Region`, `Year`, and `Month` are table fields. | 傳回 ``G7*=6GKPJ(Z+)^KM?<$'AI.)?U$#X2RB[:0ZP=+Z`F:`` |

## 範例 - Hash256 基礎事項

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Hash256.htm)

#### 圖表運算式

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 以下欄位將用於建立 256 位元雜湊值：

  * `Region`

  * `Year`

  * `Month`

載入指令碼

```
Example:
Load *
inline [
Region, Year, Month
abc, xyz, 123
EU, 2022, 01
UK, 2022, 02
US, 2022, 02
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* ` Region
                                   `

* `Year`

* `Month`

建立下列計算維度：

* `=Hash256(Region, Year, Month)`，用來計算 256 位元雜湊值。

結果表格

| 區域 | 年 | 月 | Hash256(Region, Year, Month) |
| --- | --- | --- | --- |
| abc | xyz | 123 | MA&5]6+3=:&gt;;&gt;G%S&lt;U\*S2I:`=X*A.IO*8N\%Y7Q;YEJ |
| EU | 2022 | 01 | B40^K&[T@!;VB'XR]&lt;5=//\_F853?BE6'G&,YH\*T'MF) |
| UK | 2022 | 02 | O5T;+1?[B&"F&1//MA[MN!T"FWZT=4\#V`M%6_\0C>4 |
| US | 2022 | 02 | C6@#]4#\_G-(]J7EQY#KRW`@KF+W-0]`[Z8R+#'")=+0 |

對於每一列，`Region`、`Year` 和 `Month` 的雜湊字串聯結在一起，並傳回 43 個字元的字串。

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Hash256.htm)

#### 載入指令碼

以下程式碼顯示如何在載入指令碼中使用該函數。

```
Hash_256:
Load *,
Hash256(Region, Year, Month) as Hash256_Region_Year_Month;
Load * inline [
Region, Year, Month
abc, xyz, 123
EU, 2022, 01
UK, 2022, 02
US, 2022, 02 ];
```

結果表格

| 區域 | 年 | 月 | Hash256\_Region\_Year\_Month |
| --- | --- | --- | --- |
| abc | xyz | 123 | MA&5]6+3=:&gt;;&gt;G%S&lt;U\*S2I:`=X*A.IO*8N\%Y7Q;YEJ |
| EU | 2022 | 01 | B40^K&[T@!;VB'XR]&lt;5=//\_F853?BE6'G&,YH\*T'MF) |
| UK | 2022 | 02 | O5T;+1?[B&"F&1//MA[MN!T"FWZT=4\#V`M%6_\0C>4 |
| US | 2022 | 02 | C6@#]4#\_G-(]J7EQY#KRW`@KF+W-0]`[Z8R+#'")=+0 |

## 範例 - 具有重複項目的 Hash256 使用情境

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Hash256.htm)

#### 圖表運算式

概述

此範例為每個產品項目建立唯一的雜湊值。雜湊值作為唯一識別碼，讓公司能夠有效地偵測和管理重複內容。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `TransactionID`

  * `ProductID`

  * `ProductName`

  * `SupplierID`

載入指令碼

```
Example:
Load *
inline [
TransactionID, ProductID, ProductName, SupplierID
1, 101, Widget A, S001, 100
2, 102, Widget B, S002, 200
3, 101, Widget A, S001, 50
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* ` Transaction ID
                                   `

* ` ProductID
                                   `

* `ProductName`

* `SupplierID`

建立下列計算維度：

* `=Hash256(ProductID, ProductName, SupplierID)`，用來計算 43 個字元的金鑰。

結果表格

| TransactionID | ProductID | ProductName | SupplierID | Hash256(ProductID, ProductName, SupplierID) |
| --- | --- | --- | --- | --- |
| 1 | 101 | ​Widget A ​ ​ | S001 | ​CY`&^(N,E/#`TJT4&]/7N1Q+\*T3K=35VDVQ&gt;&gt;;%+A0] |
| 2 | 102 | Widget B | S002 | O7(1;V1%MG;Z+A[/H)G5&`6RA0(`%6T?YZQ.+&gt;\*&\JF |
| 3 | 101 | Widget A | S001 | ​CY`&^(N,E/#`TJT4&]/7N1Q+\*T3K=35VDVQ&gt;&gt;;%+A0] |

比較 `Hash256` 函數的輸出。請注意，第一個和第三個 `TransactionID` 記錄具有重複的雜湊值，因為這些列的 `ProductID`、`ProductName` 和 `SupplierID` 字串的組合相同。

## 範例 - 對匿名資料的 Hash256 使用情境

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Hash256.htm)

#### 圖表運算式

概述

金融服務公司處理敏感的客戶資訊，例如信用卡號、社會安全號碼和客戶姓名。為了保護隱私並確保遵守《一般資料保護規範》(GDPR) 或《健康保險可攜性和責任法案》(HIPAA) 等法規，他們需要在產生分析報告時對敏感資料進行匿名處理。不過，他們也需要保持一致性，以便他們可以在不同的資料集追蹤相同客戶，而不會洩露客戶的身分。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 Example 之資料表格的資料集。

* 資料表格中的欄位如下：

  * CustomerID

  * CustomerName

  * SSN

載入指令碼

```
Example:
Load *
inline [
CustomerID, CustomerName, SSN
101, John Doe, 123-45-6789|
102, Jane Smith, 987-65-4321
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* CustomerID

* CustomerName

* SSN

建立下列計算維度：

* ​=Hash256(CustomerName)

* =Hash256(SSN)

結果表格

| CustomerID | CustomerName | SSN | Hash256(CustomerName) | Hash256(SSN) |
| --- | --- | --- | --- | --- |
| 101 | ​John Doe | ​123-45-6789\| | GMD(\*B9\*!PQ&MTY2@$4A\KCL?[0@T%D@8C#6&UR8/95 | ​N&[PSH:I$M?OF&lt;5/9LV&N\*;`CZ((X'"9Y2FKJC6W04[​ |
| 102 | Jane Smith | ​987-65-4321 | ​EP@9]GSI)5G\I\*,B?H,C?A$%VG:SL#6I&gt;Q1:L&lt;0O7UW | ​HCFXMR'2=\3WF6?\_\6LN;.\*6:K?Y:%MZ#\*PP]WI`YS<​ |

輸出產生唯一的金鑰，具有以下優點：

* 資料隱私：不會直接看見原始敏感資料，但雜湊值在不同記錄之間能保持一致。這樣就能進行分析，例如彙總客戶活動，而無需暴露客戶的實際身分。

* 合規性：對敏感欄位進行雜湊處理，藉此讓公司確保遵守資料隱私法規。

* 安全性：雜湊函數產生不可逆的固定大小輸出，為敏感資料增加了額外的保護層。