# Hash256 - スクリプトおよびチャート関数

Hash256() は、複合入力式の値の 256 ビット ハッシュを返します。結果は、43 文字の文字列になります。 ハッシュ値は、顧客名、社会保障番号、口座番号などの個人識別情報 (PII) を隠すのに役立ちます。

構文:

Hash256(expr{, expression})

戻り値データ型： 文字列

引数

| 引数 | 説明 |
| --- | --- |
| 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/sense/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 ビットのハッシュ値を計算します。

結果テーブル

| 地域 | 年 | 月 | Hash256 (地域、年、月) |
| --- | --- | --- | --- |
| 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/sense/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 ];
```

結果テーブル

| 地域 | 年 | 月 | 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/sense/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` 関数の出力を比較します。1 番目と 3 番目の `TransactionID` レコードでは、`ProductID`、`ProductName`、および `SupplierID` の文字列の組み合わせが同じであるため、ハッシュ値が重複していることに注意してください。

## 例 - Hash256 シナリオによるデータの匿名化

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

#### チャートの数式

概要

金融サービス会社では、クレジットカード番号、社会保障番号、顧客名などの機密性の高い顧客情報が取り扱われています。プライバシーを保護し、一般データ保護規則 (GDPR) や医療保険の携行性と責任に関する法律 (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<​ |

出力では、次のような利点を持つ一意のキーが生成されます。

* データのプライバシー: 元の機密データは直接表示されませんが、ハッシュ値は異なるレコード間で一貫しています。これにより、顧客の実際の身元を公開することなく、顧客のアクティビティを集計するなどの分析が可能になります。

* コンプライアンス: 機密フィールドをハッシュ化することで、企業はデータ プライバシー規制への準拠を保証します。

* セキュリティ: ハッシュ関数は、元に戻すことのできない固定サイズの出力を生成するため、機密データに対する保護層が追加されます。