# Hash128 - Komut dosyası ve grafik fonksiyonu

Hash128(), birleştirilmiş giriş ifade değerlerinin 128 bitlik karma değerini verir. Sonuç, 22 karakterli bir dizedir. Karma değerler; müşteri adları, sosyal güvenlik numaraları veya hesap numaraları gibi kişisel tanımlama bilgilerini (PII) gizlemek için kullanışlıdır.

Söz Dizimi:

Hash128(expr{, expression})

Dönüş verileri türü: dize

Bağımsız Değişkenler

| Bağımsız Değişken | Tanım |
| --- | --- |
| expr | Değerlendirilecek dize. |

Örnek: Grafik ifadeleri

| Örnek | Sonuç |
| --- | --- |
| `Hash128( 'abc', 'xyz', '123' )` | `MA&5]6+3=:>:>G%S<U*S2+` döndürür |
| `Hash128 ( Region, Year, Month )`<br><br>Note: `Region`, `Year`, and `Month` are table fields. | `G7*=6GKPJ(Z+)^KM?<$'A+` döndürür |

## Örnek - Hash128 temel bilgileri

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

#### Grafik ifadesi

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Example` adlı veri tablosuna yüklenen bir veri kümesi.

* 128 bitlik karma değeri oluşturmak için kullanılacak aşağıdaki alanlar:

  * `Region`

  * `Year`

  * `Month`

Komut dosyası

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

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* ` Region
                                   `

* `Year`

* `Month`

Aşağıdaki hesaplanan boyutu oluşturun:

* `=Hash128(Region, Year, Month)`, 128 bit karma değerini hesaplamak için.

Sonuçlar tablosu

| Bölge | Yıl | Ay | 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 |

Her bir satırda `Region`, `Year` ve `Month` için karma dizeler birleştirilir ve 22 karakterlik bir dize döndürülür.

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

#### Komut dosyası

Aşağıdaki kod, fonksiyonun bir komut dosyasında nasıl kullanılacağını gösterir.

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

Sonuçlar tablosu

| Bölge | Yıl | Ay | 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 |

## Örnek - Yinelenen girişlere sahip Hash128 senaryosu

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

#### Grafik ifadesi

Genel bakış

Bu örnek, her ürün girişi için benzersiz bir karma değer oluşturur. Karma değer, benzersiz bir tanımlayıcı görevi görerek şirketin kopyaları etkili bir şekilde tespit etmesine ve yönetmesine olanak tanır.

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* `Example` adlı veri tablosuna yüklenen bir veri kümesi.

* Veri tablosundaki şu alanlar:

  * `TransactionID`

  * `ProductID`

  * `ProductName`

  * `SupplierID`

Komut dosyası

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

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* ` Transaction ID
                                   `

* ` ProductID
                                   `

* `ProductName`

* `SupplierID`

Aşağıdaki hesaplanan boyutu oluşturun:

* `=Hash128(ProductID, ProductName, SupplierID)`, 22 karakterli bir anahtarı hesaplamak için.

Sonuçlar tablosu

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

`Hash128` fonksiyonunun çıktısını karşılaştırın. Birinci ve üçüncü `TransactionID` kayıtlarının yinelenen karma değerlere sahip olduğuna dikkat edin çünkü `ProductID`, `ProductName` ve `SupplierID` dizelerinin birleşimi bu satırlar için aynıdır.

## Örnek - Verileri anonimleştirmek için Hash128 senaryosu

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

#### Grafik ifadesi

Genel bakış

Bir finansal hizmetler şirketi, kredi kartı numaraları, sosyal güvenlik numaraları ve müşteri adları gibi hassas müşteri bilgilerini işler. Gizliliği korumak ve Genel Veri Koruma Yönetmeliği (GDPR) veya Sağlık Sigortası Taşınabilirlik ve Sorumluluk Yasası (HIPAA) gibi yönetmeliklere uyum sağlamak üzere analiz için rapor oluştururken hassas verileri anonimleştirmeleri gerekir. Bununla birlikte, müşterinin kimliğini ifşa etmeden aynı müşteriyi farklı veri kümelerinde takip edebilmeleri için tutarlılığı da korumaları gerekir.

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* Example adlı veri tablosuna yüklenen bir veri kümesi.

* Veri tablosundaki şu alanlar:

  * CustomerID

  * CustomerName

  * SSN

Komut dosyası

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

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* CustomerID

* CustomerName

* SSN

Aşağıdaki hesaplanan boyutları oluşturun:

* ​=Hash128(CustomerName)

* =Hash128(SSN)

Sonuçlar tablosu

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

Çıktı aşağıdaki avantajlara sahip benzersiz anahtarlar üretir:

* Veri Gizliliği: Orijinal hassas veriler doğrudan görünmez, ancak karma değer farklı kayıtlarda tutarlı kalır. Bu, müşterinin gerçek kimliğini ifşa etmeden müşteri faaliyetlerinin toplanması gibi analizlere olanak tanır.

* Uyumluluk: Şirket, hassas alanları karma hale getirerek veri gizliliği düzenlemeleriyle uyumluluğu sağlar.

* Güvenlik: Karma değer fonksiyonu, tersine çevrilemeyen sabit boyutlu bir çıktı üreterek hassas veriler için ekstra bir koruma katmanı ekler.