MACアドレスをUUIDに置き換える

MACアドレスをUUIDに置き換える

クライアントMACアドレスを使用してクライアントにデータを提供する前に、ログファイルに表示されるたびにクライアントMACアドレスをマスクする方法を探しています(GDPRルール)。

正規表現を使用してMAC文字列を識別できますが、MD5がほとんど透明であるため使用されなくなったように見えるため、これをマスクする最良の方法は何であるかわかりません。

MACは異なる時間に入り、システムを通過するときに指定されたMACを追跡する必要があるため、常に同じマスク/ uuidを返すには指定されたMACが必要です。

使用される正規表現は次のとおりです。 (?<=clientMac":\s")[A-Z0-9]{12}

理想的には、交換のために簡単なものを使用したいのですが、sedこれは不可能かもしれないことを認めます。

ベストアンサー1

コメントで要求されているように、以下はを使用してこれらの交換を実行する方法の例ですsed。 / linuxラベルを使用したので、GNUsedとそのeフラグをコマンドとして使用するsのは安全です。

sed -E 'h;s/.*clientMac":\s"([A-Z0-9]{12}).*/echo secretKey\1|md5sum/e;T
  G;s/(.*)\s*-\n(.*clientMac":\s")[A-Z0-9]{12}(.*)/\2\1\3/' logfile

説明する:

  • このhコマンドはその行を予約済みスペースに保存するため、線を台無しにした後に復元できます(-;
  • s/.*clientMac":\s"([A-Z0-9]{12}).*/echo secretKey\1|md5sum/eライン全体を一致させて、実際のMACを()交換に再利用します。置換は実行するコマンドを構成します。echo「salt」と一緒にMCAを使用してパイプに入りますmd5sum。このeフラグを使用すると、sedこのコマンドがシェルで実行され、結果がバッファに戻されます。
  • T代替項目がない場合は、スクリプトの最後に分岐します。変更されていないMACを印刷する行。次の行は、交換時にのみ実行されます。
  • G追加はバッファの元の行を保持するため、バッファにmd5sum出力、改行、元の行があります。
  • s/(.*)\s*-\n(.*clientMac":\s")[A-Z0-9]{12}(.*)/\2\1\3/最初のペアのMD5、2番目のペアの()MACの前のライン、3番目のペアのMACの後の残りのラインをキャプチャして、\2\1\3MACをMD5に置き換えます。

おすすめ記事