# Hash128 Script- en diagramfunctie

Hash128() retourneert een 128-bits hashwaarde van de gecombineerde invoerwaarden van de uitdrukking. Het resultaat is een tekenreeks van 22 tekens. Hashwaarden zijn handig voor het maskeren van persoonlijke identificeerbare informatie (PII), zoals klantnamen, burgerservicenummers of rekeningnummers.

Syntaxis:

Hash128(expr{, expression})

Retourgegevenstypen: tekenreeks

Argumenten

| Argument | Beschrijving |
| --- | --- |
| expr | De tekenreeks die moet worden geëvalueerd. |

Voorbeeld: diagramuitdrukkingen

| Voorbeeld | Resultaat |
| --- | --- |
| `Hash128( 'abc', 'xyz', '123' )` | Retourneert `MA&5]6+3=:>:>G%S<U*S2+` |
| `Hash128 ( Region, Year, Month )`<br><br>Note: `Region`, `Year`, and `Month` are table fields. | Retourneert `G7*=6GKPJ(Z+)^KM?<$'A+` |

## Voorbeeld - Basisprincipes voor Hash128

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

#### Diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden worden gebruikt om een 128-bits hashwaarde te maken:

  * `Region`

  * `Year`

  * `Month`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* ` Region
                                   `

* `Year`

* `Month`

Maak een nieuwe tabel en voeg de volgende berekende dimensie toe:

* `=Hash128(Region, Year, Month)` om de 128-bits hashwaarde te berekenen.

Resultatentabel

| Regio | Jaar | Maand | Hash128(Region, Year, Month) |
| --- | --- | --- | --- |
| abc | xyz | 123 | MA&5]6+3=:&gt;;&gt;G%S&lt;U\*S2+ |
| EU | 2022 | 01 | B40^K&[T@!;VB'XR]&lt;5=/$ |
| UK | 2022 | 02 | O5T;+1?[B&"F&1//MA[MN! |
| US | 2022 | 02 | C6@#]4#\_G-(]J7EQY#KRW0 |

Voor elke rij worden de hashstrings voor `Region`, `Year`, en `Month` samengevoegd en wordt een tekenreeks van 22 tekens geretourneerd.

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

#### Load-script

De volgende code laat zien hoe u de functie in een load-script kunt gebruiken.

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

Resultatentabel

| Regio | Jaar | Maand | Hash128\_Region\_Year\_Month |
| --- | --- | --- | --- |
| abc | xyz | 123 | MA&5]6+3=:&gt;;&gt;G%S&lt;U\*S2+ |
| EU | 2022 | 01 | B40^K&[T@!;VB'XR]&lt;5=/$ |
| UK | 2022 | 02 | O5T;+1?[B&"F&1//MA[MN! |
| US | 2022 | 02 | C6@#]4#\_G-(]J7EQY#KRW0 |

## Voorbeeld - Hash128 scenario met duplicaten

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

#### Diagramuitdrukking

Overzicht

Dit voorbeeld maakt een unieke hashwaarde voor elke productvermelding. De hashwaarde dient als unieke identificatie, waardoor het bedrijf duplicaten effectief kan opsporen en beheren.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `TransactionID`

  * `ProductID`

  * `ProductName`

  * `SupplierID`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* ` Transaction ID
                                   `

* ` ProductID
                                   `

* `ProductName`

* `SupplierID`

Maak een nieuwe tabel en voeg de volgende berekende dimensie toe:

* `=Hash128(ProductID, ProductName, SupplierID)` om een sleutel van 22 tekens te berekenen.

Resultatentabel

| TransactionID | ProductID | ProductName | SupplierID | Hash128(ProductID, ProductName, SupplierID) |
| --- | --- | --- | --- | --- |
| 1 | 101 | ​Widget A ​ ​ | S001 | ​CY`&^(N,E/#`TJT4&]/7N% |
| 2 | 102 | Widget B | S002 | ​O7(1;V1%MG;Z+A[/H)G5&0 |
| 3 | 101 | Widget A | S001 | ​CY`&^(N,E/#`TJT4&]/7N% |

Vergelijk de uitvoer van de functie `Hash128`. Merk op dat de eerste en derde `TransactionID` records dubbele hashwaarden hebben omdat de combinatie van de tekenreeksen `ProductID`, `ProductName` en `SupplierID` hetzelfde zijn voor deze rijen.

## Voorbeeld - Hash128 scenario om gegevens te anonimiseren

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

#### Diagramuitdrukking

Overzicht

Een bedrijf dat financiële diensten verleent, verwerkt gevoelige informatie over klanten, zoals creditcardnummers, burgerservicenummers en namen van klanten. Om de privacy te beschermen en naleving van voorschriften zoals de Algemene verordening gegevensbescherming (AVG) of de Health Insurance Portability and Accountability Act (HIPAA) te garanderen, moeten ze gevoelige gegevens anonimiseren wanneer ze rapporten genereren voor analyse. Ze moeten echter ook consistentie behouden, zodat ze dezelfde klant in verschillende gegevensverzamelingen kunnen volgen zonder de identiteit van de klant te onthullen.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam Example.

* De volgende velden in de gegevenstabel:

  * CustomerID

  * CustomerName

  * SSN

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* CustomerID

* CustomerName

* SSN

Maak de volgende berekende dimensies:

* ​=Hash128(CustomerName)

* =Hash128(SSN)

Resultatentabel

| CustomerID | CustomerName | SSN | Hash128(CustomerName) | Hash128(SSN) |
| --- | --- | --- | --- | --- |
| 101 | ​John Doe | ​123-45-6789\| | ​GMD(\*B9\*!PQ&MTY2@$4A\+ | ​N&[PSH:I$M?OF&lt;5/9LV&N# ​ |
| 102 | Jane Smith | ​987-65-4321 | ​EP@9]GSI)5G\I\*,B?H,C?) | ​HCFXMR'2=\3WF6?\_\6LN;$​ ​ |

De uitvoer genereert unieke sleutels die de volgende voordelen hebben:

* Privacy van gegevens: de oorspronkelijke gevoelige gegevens zijn niet direct zichtbaar, maar de hashwaarde blijft consistent in verschillende records. Dit maakt analyse mogelijk, zoals het aggregeren van klantactiviteit, zonder de werkelijke identiteit van de klant prijs te geven.

* Naleving: door gevoelige velden te hashen, zorgt het bedrijf ervoor dat de privacyregels worden nageleefd.

* Beveiliging: de hashfunctie produceert een uitvoer met een vaste grootte die niet omkeerbaar is, en voegt zo een extra beschermingslaag toe voor gevoelige gegevens.