Thread Kreditkarten Maskierung via RegEx (12 answers)
Opened by marcus74 at 2015-02-17 16:19

marcus74
 2015-02-17 16:19
#179708 #179708
User since
2015-02-17
6 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich bin neu in der Perl Sprache wie auch hier im Forum. Ich stehe vor der Herausforderung eine Kreditkarten-Maskierung in Perl zu schreiben.

Folgenden Code habe ich bereits erfolgreich erstellen können:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl
use Algorithm::LUHN qw(is_valid);
use autodie; # Automatic errors on file problems.
use strict;
use warnings;

# This is the name of the file we want to modify.
my $filename = 'test_ccc9999.txt';

# We're going to create a temporary file. This avoids us having
# to build up a potentially large string in memory.
my $tempname = $filename . '.tmp';

do
{
# Open both files. Doing this using lexical file handles
# within a "do" block means that when the end of the block
# is reached, the files will be closed.
open my $input_h, '<', $filename; # input handle
open my $output_h, '>', $tempname; # output handle

# Loop through each line of input.
while (my $row = <$input_h>)
{
while ($row =~ /(3[47]\d{13})/g)
{
if (is_valid("$1")) {
print "$1\n";

$1 =~ s/(3[47]\d{9})(\d{4})/XXXXXXXXXXX$2/g;
}
#print "$1\n";
}




# Write it out.
print $output_h $_;
}
};

# Delete the original file.
unlink $filename while -f $filename;

# Rename the temporary file to the original filename.
rename $tempname => $filename;


Ich bekomme eine Textdatei mit vielen Zeilen und in diesen Zeilen stehen Kreditkartennummer bzw. Nummern die einer Kreditkarte ähnlich sind. Ich möchte nun alle Nummer anhand der RegEX rausfiltern. Im nächsten Schritt soll nun diese Nr. via Luhn Algorithmus geprüft werden ob es sich tatsächlich um eine Kreditkartennummer handelt und falls ja maskieren. Am Ende soll es eine TextDatei mit dem gleichen Aufbau wie die Quelldatei nur das alle "echten" Kreditkarten maskiert sind.

Ich komme mit dem Coding bis zur Abfrage ob gültige CC-Nr, danach bekomme ich es nicht maskiert bzw. in die Datei zurückgeschrieben.

Vielleicht hat einer von Euch ein Lösungsansatz !

Vielen Dank & schönen Feierabend

Marcus
Last edited: 2015-02-17 16:21:46 +0100 (CET)

View full thread Kreditkarten Maskierung via RegEx