Excel : Nummern Anonymizieren und Pseudonymizieren
Mit einer einfachen vba Function
Mit Excel Datei als Beispiel zum Download
Die folgende Excel Datei anonymisiert Daten anhand einer einmaligen Zufallszahl.
Anonymisierung:
Bei der Anonymisierung werden vertrauliche kritische Daten auf einen andere nicht einfach abzuleitende neue Ersatzbegriff geändert. Im einfachen Beispiel werden Nummern in neue andere Nummern verändert.
Bei der Verwendung von Verschlüsselungen kann der Einsatz von Hash Funktionen eingesetzt werden
Dabei wird die Zufallszahl einmalig initialisiert und anschließend auf Nummern angerechnet.
Bei der Anonymisierung von ID Nummern kann man keine Hash-Funktion in Excel vba anwenden, wenn man die Daten für weitere Aufgaben direkt verwenden will. Zum Beispiel in einer Datenbank, da man keine Buchstaben in Tabellenfelder vom Typ: Integer oder Long eintragen kann.
Manchmal muss man für Dubletten in sich referenzierende Nummernkreise wiedergeben.
Pseudonymisierung
Bei der Pseudonymisierung werden einem Begriff andere Begriffe zugeordnet. Das verhält sich wie das Tragen von Masken. Am einfachsten verändert man zum Beispiel Namens-Einträge mit der Kombination von Anonymer-Nummer Plus dem Text „Name“
Diese Excel-Datei verwendet eine Formel zur Umrechnung der Zellen.
Dabei kommt die Formel aus dem vba Makro =Anonymize_Number(original_Number)
Die Excel-Datei kann zu Test und Verwendungszwecken heruntergeladen werden.
Im vba Excel-Editor, Code Behind.
Code Beschreibung:
In der Function =Anonymize_Number(ByVal sInput As String) wird der Eingabewert mit einer Zufallszahl zur Laufzeit verändert.
Dabei wird die Zufallszahl zu Beginn einmalig mit der Klasse: Randomize und der Function Rnd(12345) erstellt und anschliessend in den aktiven Zahlenkreis portiert.
Excel vba Code
Zum Verwenden
Option Explicit
Public public_Random_Zahl As Long
Public Function Anonymize_Number(ByVal sInput As String) '--------------< Anonymize_Number() >-------------- 'Zugriff ueber Excel oder Access Tabelle als Funktion =Anonymize_Number() 'veraendere eine IDNummer mit einem Random-Shift
'< check > If public_Random_Zahl = 0 Then create_Public_Random_Number If sInput = "" Then Exit Function If Len(sInput) < 3 Then Exit Function '</ check >
'< convert > 'convert string to number (Excel numbers as string, from SAP) Dim long_Input As Long long_Input = CLng(sInput) '</ convert >
Dim new_Number As Long new_Number = long_Input + public_Random_Zahl
'< return > Anonymize_Number = new_Number '</ return > '--------------</ Anonymize_Number() >-------------- End Function
Public Function create_Public_Random_Number() '--------------< create_Public_Random_Number() >--------------
'Init Zufallszahlen Randomize
'bilde Zufallszahl Dim lngRandom As Long lngRandom = Rnd(10000) * 999999 '*eine Zahl von 0 bis 6 stellen
'Public zuweisen public_Random_Zahl = lngRandom '--------------</ create_Public_Random_Number() >-------------- End Function
|