近期,由于随着威胁情报工作的开展,拿到了大量敏感单位内部的数据,由于考虑到安全问题,故对相关数据进行脱敏处理后存入数据库,便于后续作为数据训练智能体。因此不难发现,IP地址不能进行简单的加密,要求加密后得到的结果也是合法的内网IP地址段。
加密思路
我们知道,常见的内网IP地址有三种,A类私有地址:范围是10.0.0.0到10.255.255.255。B类私有地址:范围是172.16.0.0到172.31.255.255。C类私有地址:范围是192.168.0.0到192.168.255.255。假如我们把IP地址分为四个段,为:A.B.C.D,那么我们可以对ABCD四个段分别加密。
对于A段,我们考虑以下的映射关系表
加密映射表:
192->172,
172->10,
10->192
解密映射表:
172->192,
10->172,
192->10
B段有以下变换:若加密IP为172段,那么B段保持不变,若加密IP为192段,那么将其B段设置为16~31之间的随机数,若加密IP为10段,将其B段设置为168。C段的规则是c+100>255则保持不变,若c+100<=255,c+100,D段保持不变,其中10段B段与168的差值称为KEY,作为解密的密钥使用。
代码实现
此处使用Python语言编程实现,具体算法不作展示。