HMAC-SHA256 でIPアドレスを仮名化


In [54]:
import numpy as np
import pandas as pd
import pylab as pl
import matplotlib.pyplot as plt
import hmac
import hashlib
import ipaddress


%matplotlib inline

df = pd.read_csv('session0.csv')

key = "secret"
b = 8

def anonymized(x):
    ipaddr=ipaddress.ip_address(x)
    prefix = int(ipaddr) >> b << b
    netaddr=ipaddress.ip_address(prefix)
    signature = hmac.new(key,netaddr.exploded,hashlib.sha256).hexdigest()
    suffix = int(ipaddr) & (2**b-1)
    anonymizedIP = signature +  format(suffix,"04x")
    return anonymizedIP

y = []
for x in df['SrcIP']:
    y.append(anonymized(unicode(x)))

df['SrcIP'] = y

y = []
for x in df['DstIP']:
    y.append(anonymized(unicode(x)))

df['DstIP'] = y

df.to_csv('session1.csv')

In [ ]: