# Hash128 Funzione per script e grafici

Hash128() restituisce un hash a 128 bit dei valori dell'espressione di input combinati. Il risultato è una stringa da 22 caratteri. I valori hash sono utili per mascherare le informazioni personali identificabili (PII), come i nomi dei clienti, i numeri di previdenza sociale o i numeri di conto.

Sintassi:

Hash128(expr{, expression})

Tipo di dati restituiti: stringa

Argomenti

| Argomento | Descrizione |
| --- | --- |
| expr | La stringa da valutare. |

Esempio: espressioni del grafico

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

## Esempio: principi fondamentali della funzione Hash128

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

#### Espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi saranno utilizzati per creare un valore hash a 128 bit:

  * `Region`

  * `Year`

  * `Month`

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* ` Region
                                   `

* `Year`

* `Month`

Creare la seguente dimensione calcolata:

* `=Hash128(Region, Year, Month)`, per calcolare il valore hash a 128 bit.

Tabella dei risultati

| Regione | Anno | Mese | Hash128(Regione, Anno, Mese) |
| --- | --- | --- | --- |
| 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 |

Per ogni riga, le stringhe hash per `Region`, `Year` e `Month` vengono unite e viene restituita una stringa di 22 caratteri.

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

#### Script di caricamento

Il codice seguente mostra come utilizzare la funzione in uno script di caricamento.

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

Tabella dei risultati

| Regione | Anno | Mese | Hash128\_Regione\_Anno\_Mese |
| --- | --- | --- | --- |
| 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 |

## Esempio: scenario per l'applicazione della funzione Hash128 con voci duplicate

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

#### Espressione del grafico

Panoramica

In questo esempio si mostra come creare un valore hash univoco per ogni voce del prodotto. Il valore hash funge da identificatore univoco, consentendo all'azienda di individuare e gestire efficacemente i duplicati.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `TransactionID`

  * `ProductID`

  * `ProductName`

  * `SupplierID`

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* ` Transaction ID
                                   `

* ` ProductID
                                   `

* `ProductName`

* `SupplierID`

Creare la seguente dimensione calcolata:

* `=Hash128(ProductID, ProductName, SupplierID)`, per calcolare una chiave di 22 caratteri.

Tabella dei risultati

| IDTransazione | ID prodotto | NomeProdotto | IDFornitore | 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% |

Confrontare l'output della funzione `Hash128`. Notare che il primo e il terzo record di `TransactionID` hanno valori hash duplicati perché la combinazione delle stringhe `ProductID`, `ProductName` e `SupplierID` è la stessa per queste righe.

## Esempio: scenario per l'applicazione della funzione Hash128 per l'anonimizzazione dei dati

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

#### Espressione del grafico

Panoramica

Una società di servizi finanziari gestisce le informazioni sensibili sui clienti, come carte di credito, numeri di previdenza sociale e i nomi dei clienti. Per proteggere la privacy e garantire la conformità a normative come il General Data Protection Regulation (GDPR) o l'Health Insurance Portability and Accountability Act (HIPAA), hanno bisogno di rendere anonimi i dati sensibili quando generano report per l'analisi. Tuttavia, devono anche mantenere la coerenza, in modo da poter rintracciare lo stesso cliente in diversi set di dati senza rivelarne l'identità.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata Example.

* I seguenti campi nella tabella dati:

  * CustomerID

  * CustomerName

  * SSN

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* CustomerID

* CustomerName

* SSN

Creare le seguenti dimensioni calcolate:

* ​=Hash128(CustomerName)​

* =Hash128(SSN)

Tabella dei risultati

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

L'output genera chiavi univoche che presentano i seguenti vantaggi:

* Privacy dei dati: i dati sensibili originali non sono direttamente visibili, ma il valore hash rimane coerente tra i diversi record. Ciò consente di effettuare analisi, come l'aggregazione delle attività dei clienti, senza esporre l'identità effettiva del cliente.

* Conformità: grazie all'hashing dei campi sensibili, l'azienda garantisce la conformità alle normative sulla privacy dei dati.

* Sicurezza: la funzione hash produce un output di dimensioni fisse che non è reversibile, aggiungendo un ulteriore livello di protezione per i dati sensibili.