# Hash256 — funkcja skryptu i funkcja wykresu

Funkcja Hash256() zwraca 256-bitową wartość skrótu połączonych wartości wyrażenia wejściowego. Wynik jest ciągiem 43 znaków. Wartości skrótu przydają się do maskowania danych osobowych, takich jak imiona i nazwiska klientów, numery ubezpieczenia społecznego lub numery kont.

Składnia:

Hash256(expr{, expression})

Typ zwracanych danych: ciąg znaków

Argumenty

| Argument | Opis |
| --- | --- |
| expr | Ciąg znaków do oceny. |

Przykład: wyrażenia wykresu

| Przykład | Wynik |
| --- | --- |
| `Hash256( 'abc', 'xyz', '123' )` | Zwraca wartość ``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. | Zwraca wartość ``G7*=6GKPJ(Z+)^KM?<$'AI.)?U$#X2RB[:0ZP=+Z`F:`` |

## Przykład — podstawy Hash256

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

#### Wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Następujące pola, które zostaną użyte w celu utworzenia 256-bitowej wartości skrótu:

  * `Region`

  * `Year`

  * `Month`

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* ` Region
                                   `

* `Year`

* `Month`

Utwórz następujący wymiar wyliczany:

* `=Hash256(Region, Year, Month)` do obliczenia 256-bitowej wartości skrótu.

Tabela wynikowa

| Region | Rok | Miesiąc | 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 |

W przypadku każdego wiersza ciągi skrótu `Region`, `Year` i `Month` są połączone i jest zwracany ciąg 43-znakowy.

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

#### Skrypt ładowania

Poniższy kod pokazuje, jak użyć tej funkcji w skrypcie ładowania.

```
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 ];
```

Tabela wynikowa

| Region | Rok | Miesiąc | 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 |

## Przykład — zastosowanie Hash256 z duplikatami wpisów

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

#### Wyrażenie wykresu

Przegląd

W tym przykładzie jest tworzona unikatowa wartość skrótu dla każdego wpisu produktu. Wartość skrótu służy jako unikatowy identyfikator, umożliwiając firmie skuteczne wykrywanie duplikatów i zarządzanie nimi.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `TransactionID`

  * `ProductID`

  * `ProductName`

  * `SupplierID`

Skrypt ładowania

```
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
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* ` Transaction ID
                                   `

* ` ProductID
                                   `

* `ProductName`

* `SupplierID`

Utwórz następujący wymiar wyliczany:

* ​`=Hash256(ProductID, ProductName, SupplierID)` do obliczenia klucza 43-znakowego.

Tabela wynikowa

| 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] |

Porównaj dane wyjściowe funkcji `Hash256`. Zauważ, że pierwszy i trzeci rekord `TransactionID` mają zduplikowane wartości skrótu, ponieważ kombinacja ciągów `ProductID`, `ProductName` i `SupplierID` jest taka sama dla tych wierszy.

## Przykład — zastosowanie Hash256 do anonimizacji danych

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

#### Wyrażenie wykresu

Przegląd

Firma świadcząca usługi finansowe posługuje się poufnymi informacjami o klientach, takimi jak numery kart kredytowych, numery ubezpieczenia społecznego oraz imiona i nazwiska klientów. Aby chronić prywatność i zapewnić zgodność z przepisami, takimi jak Ogólne rozporządzenie o ochronie danych osobowych (RODO) czy amerykańska Ustawa o przenośności i odpowiedzialności w ubezpieczeniach zdrowotnych (HIPAA), musi anonimizować wrażliwe dane podczas generowania raportów do analizy. Musi też jednak zachować spójność, aby móc śledzić tego samego klienta w różnych zestawach danych bez ujawniania jego tożsamości.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie Example.

* Tabela zawiera następujące pola:

  * CustomerID

  * CustomerName

  * SSN

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* CustomerID

* CustomerName

* SSN

Utwórz następujące wymiary wyliczane:

* ​=Hash256(CustomerName)

* =Hash256(SSN)

Tabela wynikowa

| 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<​ |

Dane wyjściowe generują unikatowe klucze, które mają następujące zalety:

* Prywatność danych: oryginalne wrażliwe dane nie są bezpośrednio widoczne, ale wartość skrótu pozostaje spójna w różnych rekordach. Pozwala to na przeprowadzanie analiz, takich jak agregacja aktywności klienta, bez ujawniania jego rzeczywistej tożsamości.

* Zgodność z przepisami: dzięki tworzeniu skrótów wartości pól z wrażliwymi danymi firma zapewnia zgodność z przepisami dotyczącymi prywatności danych.

* Bezpieczeństwo: funkcja skrótu generuje dane wyjściowe o stałym rozmiarze, które nie są odwracalne, dodając dodatkową warstwę ochrony wrażliwych danych.