다음 형식의 SMTP 로그가 있습니다.
6,222.3.4.5,3040,100.2.3.4,25,UNKNOWN,0,1,……,9337bc-929a-34c0-29a8-b3a89c834b29 ,protocol,SMTP ,745663746,STATUS-COMPLETE ,VALID
6,222.3.4.5,3040,100.2.3.4,25,UNKNOWN,0,1,……,9337bc-929a-34c0-29a8-b3a89c834b29 ,date,Wed, 12 Mar 2014 00:08:44 +0100 ,745663746,STATUS-COMPLETE ,VALID
6,222.3.4.5,3040,100.2.3.4,25,UNKNOWN,0,1,……,9337bc-929a-34c0-29a8-b3a89c834b29 ,from,[email protected] ,745663746,STATUS-COMPLETE ,VALID
6,222.3.4.5,3040,100.2.3.4,25,UNKNOWN,0,1,……,9337bc-929a-34c0-29a8-b3a89c834b29 ,to,[email protected],745663746,STATUS-COMPLETE ,VALID
6,222.3.4.5,3040,100.2.3.4,25,UNKNOWN,0,1,……,9337bc-929a-34c0-29a8-b3a89c834b29 ,subject,12 skills every lawyer must muster ,745663746,STATUS-COMPLETE ,VALID
6,222.3.4.5,3040,100.2.3.4,25,UNKNOWN,0,1,……,9337bc-929a-34c0-29a8-b3a89c834b29 ,received,from [222.3.4.5] by uwl-vsd-v003.client.com with ESMTP (client SMTP Relay); Wed, 2 Mar 2013 00:06:14 +0100 from MDN-RGE-V002.client.com ([333.4.5.6]) by mdn-cbd-v001.fal.client.com (PGP Universal service); Wed, 12 Mar 2014 00:05:19 +0100 from mail-ea5-p203.google.com (HELO mail-ea5-p203.google.com) (444.5.6.7) by server-2.tower-92.example.com with RC4-SHA encrypted SMTP; 11 Mar 2014 23:06:11 -0000 from mail-ea5-p203.google.com with SMTP id I6ysd382736td.92 for <john@client>; Tues, 11 Mar 2014 16:06:10 -0700 (PDT) from nicsender ([555.6.7.8]) by mx.google.com with ESMTPSA id 87sm453982eeh.12.2014.03.11.16.06.08 for <[email protected]> (version=TLSv1cipher=LDSE-RSA-UED253-SHAbits=128/128); Tues, 11 Mar 2014 16:06:09 -0700 (PDT),745663746,STATUS-COMPLETE ,VALID
이메일 주소의 서로 다른 도메인을 임의의 문자열로 대체하여 로그 파일에서 이메일 주소를 익명화하는 bash 스크립트를 작성하려고 합니다. [이메일 보호됨]로 대체됩니다[이메일 보호됨] [이메일 보호됨]로 대체됩니다[이메일 보호됨] [이메일 보호됨]로 대체됩니다[이메일 보호됨] 스크립트는 도메인 조회를 별도의 파일에 저장합니다.
누군가 나에게 이 작업을 수행하는 방법에 대한 조언을 줄 수 있습니까?
답변1
떠오르는 아이디어 중 하나는 로그 파일의 @domain.com 부분을 가져와 MD5 또는 SHA1 문자열 md5sum
로 원래 값을 마스킹하는 것입니다. sha1sum
이것은 메커니즘을 보여줍니다.
$ echo -n abc.com | md5sum
929ba26f492f86d4a9d66a080849865a -
$ echo -n 123.com | md5sum
cbff36039c3d0212b3e34c23dcde1456 -
동일한 메커니즘을 사용자 이름에도 적용할 수 있습니다 @.
실제로 0-9 숫자만 원하는 경우 생각할 수 있는 또 다른 접근 방식은 위 방법을 사용한 다음 출력을 실행하여 tr
모든 것을 0-9 숫자로 변환하는 것입니다.
$ echo -n abc.com | md5sum | tr -dc '0-9'
92926492864966080849865
$ echo -n 123.com | md5sum | tr -dc '0-9'
3603930212334231456
임의의 문자열
0~9의 임의의 숫자 문자열을 생성하려면 이 문서에 설명된 여러 가지 방법을 사용할 수 있습니다.명령줄에서 무작위 비밀번호를 생성하는 10가지 방법.
예
tr + 헤드 사용$ < /dev/urandom tr -dc 0-9 | head -c${1:-10};echo;
1294624186
$ < /dev/urandom tr -dc 0-9 | head -c${1:-16};echo;
9716679462199400
tr + 접기 사용
$ tr -cd '[:digit:]' < /dev/urandom | fold -w10 | head -n1
6503251969
$ tr -cd '[:digit:]' < /dev/urandom | fold -w16 | head -n1
6629563424656680