# Hash256 Функция скрипта и диаграммы

Hash256() возвращает 256-разрядное значение хэша для сочетания значений входного выражения. Результат — строка из 43 символов. Хеш-значения полезны для маскировки информации, позволяющей установить личность (Personally Identifiable Information, PII), такой как имена клиентов, номера социального страхования или номера счетов.

Синтаксис:

Hash256(expr{, expression})

Возвращаемые типы данных: string

Аргументы

| Аргумент | Описание |
| --- | --- |
| 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/cloud-services/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-битное хэш-значение.

Результирующая таблица

| Region | Year | Month | 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/cloud-services/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 ];
```

Результирующая таблица

| Region | Year | Month | 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/cloud-services/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/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Hash256.htm)

#### Выражение диаграммы

Обзор

Компания, предоставляющая финансовые услуги, обрабатывает конфиденциальную информацию клиентов, такую как номера кредитных карт, номера социального страхования и имена клиентов. Для защиты конфиденциальности и обеспечения соответствия нормативным требованиям, таким как «Общий регламент по защите данных» (General Data Protection Regulation, GDPR) или «Закон о передаче и защите данных учреждений здравоохранения» (Health Insurance Portability and Accountability Act, 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<​ |

В выходных данных генерируются уникальные ключи, что обеспечивает следующие преимущества:

* Конфиденциальность данных: оригинальные конфиденциальные данные не раскрываются напрямую, но хеш-значение остается неизменным в разных записях. Это позволяет проводить анализ, например, агрегирование активности клиентов, не раскрывая их реальной личности.

* Соответствие нормам: благодаря хешированию конфиденциальных полей компания обеспечивает соблюдение правил обращения с конфиденциальными данными.

* Безопасность: функция хеширования создает выходные данные фиксированного размера, эту операцию нельзя обратить, что создает дополнительный уровень защиты конфиденциальных данных.