Wikantik prioritizes the security of user data and system integrity through robust cryptographic practices. The core logic for these operations resides in the wikantik-util module within CryptoUtil.java.
Wikantik uses salted password hashing to protect user credentials. When a user creates or updates a password, the system generates a random salt, combines it with the password, and hashes the result.
The system supports two primary hashing formats, prefixed for identification:
{SHA256} (Recommended): The modern standard for Wikantik. It uses SHA-256 with a salt, providing strong resistance against collision and pre-image attacks.{SSHA} (Legacy): Salted SHA-1. This is maintained primarily for backward compatibility with legacy JSPWiki installations but is deprecated for new user accounts.Hashed passwords are stored as Base64-encoded strings of the combined hash and salt. The algorithm prefix allows CryptoUtil.verifySaltedPassword to dynamically choose the correct extraction and verification logic.
Wikantik interacts with several external services that require API keys:
/wikantik-admin-mcp and /knowledge-mcp endpoints.ANTHROPIC_API_KEY) which are read by the system at runtime.ROOT.xml) to inject sensitive configuration into the application.Wikantik is designed to run behind a TLS-terminating reverse proxy (like Nginx, Apache, or Cloudflare).
https where available.Secure and HttpOnly flags on session cookies to prevent interception and XSS-based theft.