Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

Cryptolog

Security covered Under active development 80 sites

Cryptolog enhances user privacy by logging a daily rotating, hashed version of client IP addresses instead of their actual values. This allows for basic statistical analysis while helping to comply with privacy regulations like GDPR. The module ensures that Drupal's built-in security features, such as flood control, continue to function correctly.

Cryptolog enhances user privacy (and compliance with data protection and consumer privacy regulations such as GDPR, CCPA/CPRA, etc.) by logging ephemeral identifiers in place of client IP addresses in Drupal logs and database tables.

When Cryptolog is enabled, \Drupal::request()->getClientIp() and Drupal 7's ip_address() output a 128-bit keyed hash of the client IP address (in IPv6 notation), using a key that is stored in the cache and regenerated each day.

Because Cryptolog uses the same unique identifier per IP address for a 24-hour period, it is still possible to do some statistical analysis of the logs such as counting unique visitors per day. In addition, unlike other solutions of setting $_SERVER['REMOTE_ADDR'] to either one static IP address or a completely random IP address, Drupal's flood control mechanisms still function as normal.

Note: As long as the key can still be retrieved, brute force can be used to generate a rainbow table and reverse engineer client IPv4 addresses. However, once the key has expired and a new key regenerated, or if the key was stored only in memory and the web server has been shutdown or restarted, it should not be feasible to determine client IP addresses, aside from using forensic methods on unencrypted swap space, etc.

Requirements:

Cryptolog has no special requirements, although APCu PHP extension, Memcache module and/or Redis module are recommended to serve as an in-memory cache. If available, Sodium PHP extension will be used to generate BLAKE2b keyed hashes, otherwise falling back to HMAC keyed hashes.

If PHP 8.6+ is installed, Cryptolog provides optional support for two IP address encryption algorithms, which allow site administrators to retrieve the original client IP address by decrypting the encrypted IP address. In comparison, Cryptolog's default hashing algorithm provides is faster and provides optimal user privacy because IP addresses cannot be decrypted.

Drupal 7 requirements:

One of the following: APCu PHP extension or Memcache module is required as an in-memory key/value store for the key. The backend store will be chosen automatically based on which backends are present, with a preference for Memcache which can be shared between servers. Please note that after enabling the module, you must also add it to your site's settings.php file! See README.txt for instructions. Likewise to disable the module you must remove it from your site's settings.php file. If available, Sodium PHP extension will be used to generate BLAKE2b keyed hashes, otherwise falling back to HMAC-MD5 keyed hashes.

Similar modules:

IP Anonymize logs IP addresses as per normal, and then retroactively scrubs them according to a configurable IP address retention period.

Credits:

This module was inspired by the Cryptolog Python log filter script and developed by mfb. You can support development by contributing or sponsoring.

Drupal 11 · not 10

Ask your assistant about Cryptolog

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
10
Tracked since
Jan 2023
Latest release
2 months ago
Releases (12 mo)
3 ▲ from 1
Maintenance
Active

Release Timeline

Releases

Version Type Core PHP Release date
2.3.0 Stable 11 Aug 14, 2026
8.x-1.14 Stable 8–10 Aug 14, 2026
2.2.4 Stable 10–11 Aug 13, 2026
2.2.3 Stable 10–11 Aug 18, 2025
2.2.2 Stable 10–11 May 22, 2024
2.2.1 Stable 10 Apr 11, 2024
2.2.0 Stable 10 Sep 16, 2023
2.1.0 Stable 10 Sep 15, 2023
2.0.0 Stable 10 Jan 31, 2023
2.x-dev Dev 11 Jan 27, 2023