# Hash128 - Função de script e de gráfico

Hash128() retorna um valor de hash de 128 bits dos valores combinados de expressão de entrada. O resultado é uma string de 22 caracteres. Os valores hash são úteis para mascarar informações de identificação pessoal (PII), como nomes de clientes, números de previdência social ou números de conta.

Sintaxe:

Hash128(expr{, expression})

Tipo de dados de retorno: caractere

Argumentos

| Argumento | Descrição |
| --- | --- |
| expr | A string a ser avaliada. |

Exemplo: expressões de gráfico

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

## Exemplo - Fundamentos de Hash128

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

#### Expressão de gráfico

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir serão usados para criar um valor de hash de 128 bits:

  * `Region`

  * `Year`

  * `Month`

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* ` Region
                                   `

* `Year`

* `Month`

Crie a seguinte dimensão calculada:

* `=Hash128(Region, Year, Month)` para calcular o valor de hash de 128 bits.

Tabela de resultados

| Região | Ano | Mês | 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 |

Para cada linha, as strings de hash para `Region`, `Year` e `Month` são unidas e uma string de 22 caracteres é retornada.

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

#### Script de carregamento

O código a seguir mostra como usar a função em um script de carregamento.

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

Tabela de resultados

| Região | Ano | Mês | 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 |

## Exemplo - Cenário Hash128 com entradas duplicadas

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

#### Expressão de gráfico

Visão geral

Este exemplo cria um valor de hash exclusivo para cada entrada de produto. O valor de hash serve como um identificador exclusivo, permitindo que a empresa detecte e gerencie duplicatas de forma eficaz.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `TransactionID`

  * `ProductID`

  * `ProductName`

  * `SupplierID`

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* ` Transaction ID
                                   `

* ` ProductID
                                   `

* `ProductName`

* `SupplierID`

Crie a seguinte dimensão calculada:

* `=Hash128(ProductID, ProductName, SupplierID)` para calcular uma chave de 22 caracteres.

Tabela de resultados

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

Compare a saída da função `Hash128`. Observe que o primeiro e o terceiro registros `TransactionID` têm valores de hash duplicados porque a combinação das strings `ProductID`, `ProductName` e `SupplierID` é a mesma para essas linhas.

## Exemplo - Cenário Hash128 para tornar os dados anônimos

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

#### Expressão de gráfico

Visão geral

Uma empresa de serviços financeiros lida com informações confidenciais de clientes, como números de cartão de crédito, números de previdência social e nomes de clientes. Para proteger a privacidade e garantir a conformidade com regulamentações como o Regulamento Geral de Proteção de Dados (GDPR) ou o Health Insurance Portability and Accountability Act (HIPAA), eles precisam tornar dados confidenciais anônimos ao gerar relatórios para análise. No entanto, eles também precisam manter a consistência, para que possam rastrear o mesmo cliente em diferentes conjuntos de dados sem revelar a identidade do cliente.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada Example.

* Os campos a seguir na tabela de dados:

  * CustomerID

  * CustomerName

  * SSN

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* CustomerID

* CustomerName

* SSN

Crie as seguintes dimensões calculadas:

* ​=Hash128(CustomerName)

* =Hash128(SSN)

Tabela de resultados

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

A saída gera chaves exclusivas que têm os seguintes benefícios:

* Privacidade de dados: os dados confidenciais originais não são diretamente visíveis, mas o valor do hash permanece consistente em diferentes registros. Isso permite análises, como agregar atividades do cliente, sem expor a identidade real do cliente.

* Conformidade: ao fazer hash de campos sensíveis, a empresa garante a conformidade com os regulamentos de privacidade de dados.

* Segurança: a função hash produz uma saída de tamanho fixo que não é reversível, adicionando uma camada extra de proteção para dados sensíveis.