Yet another Crypto-PAn implementation for Python
This package provides a function to anonymize IP addresses keeping their prefix consistency. This program is based on the paper “Prefix-Preserving IP Address Anonymization: Measurement-based Security Evaluation and a New Cryptography-based Scheme” written by Jun Xu, Jinliang Fan, Mostafa H. Ammar, and Sue B. Moon. The detailed explanation can be found in [Xu2002].
This package supports both IPv4 and IPv6 anonymization.
>>> from yacryptopan import CryptoPAn >>> cp = CryptoPAn('32-char-str-for-AES-key-and-pad.') >>> cp.anonymize('192.0.2.1') '18.104.22.168' >>> cp.anonymize_bin(0xc0000201, version=4) 3221257716L >>> cp.anonymize('2001:db8::1') '27fe:8bc7:fee:1e:1e1f:f0fe:f0e1:83fd' >>> cp.anonymize_bin(0x20010db8000000000000000000000001, version=6) 53161570263948813229648829710638089213L
The source code is available at https://github.com/keiichishima/yacryptopan
Please submit bug reports or patches through the GitHub interface.
[Xu2002] Jun Xu, Jinliang Fan, Mostafa H. Ammar, and Sue B. Moon, “Prefix-Preserving IP Address Anonymization: Measurement-based Security Evaluation and a New Cryptography-based Scheme”, in Proceedings of the IEEE International Conference on Network Protocols, Paris, 2002.