Hashing

Syntho beta feature

Op dit moment is hashing alleen beschikbaar voor sleutels, maar het kan nu worden uitgebreid naar gewone kolommen. Deze nieuwe functionaliteit wordt geïntroduceerd onder een nieuwe hoofdcategorie in de Generation Method. De standaard hashingbenadering wordt gespecificeerd voor elk datatype, met specifieke overwegingen voor sleutels en reguliere kolommen.

Volg deze stappen om de nieuwe hashingfunctie voor reguliere kolommen te gebruiken:

  1. Navigeer naar Column Settings in je databasebeheerinterface.

  2. Onder Generation Methodkiezen Hashing om de hashingfunctie voor de geselecteerde kolom in te schakelen.

  3. Kies het juiste gegevenstype voor de kolom en zorg ervoor dat de instellingen overeenkomen met de standaard hashingbenaderingen die hierboven zijn gespecificeerd:

    • Voor Discrete Valueswordt het Hasty Pudding Cipher algoritme gebruikt.

    • Voor Categorical Valueswordt de Forward Preserving Encryption (FPE) met het FF3-algoritme toegepast.

    • Voor Datetime Valueswordt een willekeurige offset toegevoegd.

    • Voor UUIDszullen de waarden consistent worden toegewezen aan nieuwe UUID's.

  4. Sla de instellingen op en ga verder met het genereren of transformeren van gegevens.

Default Hashing Approaches by Data Type

  1. Discrete Values:

    • Algoritme: Hasty Pudding Cipher.

    • Gedrag: Er wordt een 1-op-1-toewijzing gemaakt tussen alle discrete waarden in een bereik. Dit wordt gebruikt om de waarden in de bron consistent om te zetten naar nieuwe, gehashte waarden.

    • Bereik: Het fallbackbereik voor waarden ligt binnen het toegestane bereik voor een 32-bits geheel getal, maar het werkelijke bereik hangt af van het datatype en de databaseondersteuning.

      • Minimum fallback: -2,147,486,647

      • Maximale terugval: 2,147,486,647

    • Beperking: Negatieve getallen hashen altijd naar negatieve getallen en positieve getallen naar positieve getallen. Een interne variabele codeert het teken van getallen door een extra bit te gebruiken voor het teken, de absolute waarde te nemen en na het hashen te vermenigvuldigen met -1 als het oorspronkelijke getal negatief was. Merk op dat 0 nooit wordt gehasht.

  2. Categorical Values:

    • Algoritme: Forward Preserving Encryption (FPE) met het FF3-algoritme.

    • Referentie: FF3-algoritme

    • Opmerking: Het minimumaantal tekens hangt af van de grootte van het gebruikte alfabet, wat meestal resulteert in minimaal 4 tekens.

  3. Datetime Values:

    • Methode: Voeg een willekeurige offset toe aan de originele waarde.

  4. UUIDs:

    • Methode: Consequent toewijzen aan een nieuwe UUID.

Considerations

  • Hashingwaarden zijn afhankelijk van de globale zaadwaarde, wat betekent dat ze veranderen als de zaadwaarde wordt gewijzigd.

  • Oversampling is niet toegestaan voor hashing en duplicatie wanneer het is ingesteld op een sleutelkolom. Voor reguliere kolommen is deze beperking niet van toepassing.

Ordering and Indexing Considerations

Voor een nauwkeurige ordening is het essentieel dat de toepassing een index of een primaire sleutel in de brontabel heeft. Als deze ontbreken, sorteert de toepassing standaard op basis van de eerste kolom van de tabel. Als de eerste kolom echter dubbele waarden bevat, kan de volgorde niet worden gegarandeerd, omdat deze afhankelijk is van het sorteeralgoritme van de database om dubbele waarden te verwerken. Het toevoegen van een index aan de brontabel lost dit probleem op.

Het is belangrijk om op te merken dat het gebruik van consistente mapping in een tabel zonder gedefinieerde primaire sleutels of indexen kan leiden tot onverwachte resultaten. In dergelijke gevallen gebruikt de toepassing de eerste kolom voor het ordenen, die mogelijk geen unieke waarden bevat, wat leidt tot niet-deterministische resultaten.

Door hashing beschikbaar te maken voor reguliere kolommen, krijgen gebruikers meer flexibiliteit in het verwerken van gegevens, waarbij consistentie en beveiliging over verschillende datatypes worden gegarandeerd terwijl de gespecificeerde beperkingen en gedragingen worden nageleefd.

Last updated