This post is also available in: Englisch

Aufrufe: 10068

Werte verschlüsseln – habt Ihr Daten in euren Datensets, welche Ihr verschlüsseln müsst? Hier zeige ich Euch, wie eine Verschlüsselung in Power BI mittels Power Query Funktionen umgesetzt werden kann.



Willst du Power BI lernen?
Auf unseren neuen Seite Power BI Coach haben wir einen Onlinekurs zusammengestellt.


Anwendungsfälle

Typische Anwendungsfälle für Verschlüsselungen sind unter anderem Kreditkartennummern, Sozialversicherungsnummern oder auch Kontonummern.
Diese werden unter Umständen für Auswertungen benötigt, sollen aber nicht in Klartext sichtbar sein. Hier bietet sich eine ganze oder auch eine partielle Verschlüsslung an.

Werte verschlüsseln in Power BI

Power BI respektive Power Query kennt keine Funktion, welche Werte «out of the box» verschlüsseln kann. Aber durch geschicktes Kombinieren von «Binary» Funktionen kann das Ziel trotzdem erreicht werden.

Hierzu wird als erstes der zu verschlüsselnde Wert in einen binären Wert umgewandelt, danach komprimiert, in eine Liste umgewandelt und zum Schluss wieder in einen Text zurückgewandelt. Tönt komplizierter als es ist.

Schauen wir uns diese Dummy-Kreditkartennummer an:
5105 1051 0510 5100

Diese wollen wir so verschlüsseln, dass ein Reportbenutzer keinen Rückschluss auf die Nummer machen kann. Das Resultat wird wie folgt aussehen:
1f8b08000000000004000b48cb2c2e492d0200be8fc57807000000

Schritt für Schritt

Aus Ausgangsbasis dient uns diese kleine Tabelle:

Ausgangstabelle
Ausgangstabelle

Als erstes muss das Feld «CreditCard Number» in einen binären Wert auf einer 64Bit Basis umgewandelt werden. Dies erreichen wir mit der ersten Funktion «Text.ToBinary» und dem Parameter «BinaryEncoding.Base64».

Text.ToBinary
Text.ToBinary

Das Resultat ist eine binäre Datei, die wir nun in das Format GZip umwandeln mit der Funktion «Binary.Compress», welche vor die vorstehende Funktion gesetzt wird.

Binary.Compress
Binary.Compress

Wiederum haben wir einen binären, nun aber komprimierten, Wert erhalten. Dieser wird wieder zu Text zurück verwandelt mit «Binary.ToText».

Binary.ToText
Binary.ToText

 Das Resultat sieht wie folgt aus, entspricht aber noch nicht dem gewünschten Wert: H4sIAAAAAAAEADM1NDBVAGJDBSA2UABiAwD0UmZfEwAAAA==

Was fehlt, ist die Umwandlung des Wertes nach der Kompression in eine Liste.
Daher löschen wir den letzten Schritt und verwenden stattdessen «Binary.ToList«.

Binary.ToList
Binary.ToList

Die Liste setzen wir wieder mit «Binary.FromList» zusammen.

Binary.FromList
Binary.FromList

Zu guter Letzt verwenden wir doch noch «Binary.ToText», diesmal mit dem Parameter «BinaryEncoding.Hex».

Binary.ToText
Binary.ToText

Und schon haben wir das gewünschte Resultat.

Resultat
Resultat

Und hier noch die einzelnen Werte:

verschlüsselte Werte
verschlüsselte Werte

Wie Ihr sehen könnt, wurden sämtliche Werte in der Spalte «CreditCard Number» verschlüsselt.

Partielle Verschlüsselung

Es ist auch möglich, mit den üblichen Textfunktionen nur Teile eines Wertes zu verschlüsseln. In diesem Beispiel werden nur die letzten acht Ziffern verschlüsselt, die restlichen Ziffern erscheinen nach wie vor in Klarschrift.

Code partielle Verschlüsselung
Code partielle Verschlüsselung

 

Resultat partielle Verschlüsselung
Resultat partielle Verschlüsselung

Verschlüsselung ganzer Zeilen

Auch ganze Zeilen können verschlüsselt werden. Dazu wird die Anweisung in eine benutzerdefinierte Funktion umgewandelt.

Verschlüsselungsfunktion
Verschlüsselungsfunktion

Die Funktion namens «fn_Hashing» kann danach verwendet werden, indem wir die Werte der ganzen Zeile kombinieren.

Code Zeile verschlüsseln
Code Zeile verschlüsseln
verschlüsselte Zeile
verschlüsselte Zeile

Die Datei mit dem Beispielcode findet ihr hier.

Fazit

Werte in Power BI zu verschlüsseln ist mit ein wenig Kenntnisse über Power Query sowie der Sprache «M» einfach zu realisieren. Welche anderen Lösungen kennt Ihr, um Werte in Power BI zu verschlüsseln? Lasst uns an euren Erfahrungen im Kommentar teilhaben.

Mehr über Power BI könnt ihr hier nachlesen.

Happy Querying!

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

%d Bloggern gefällt das: