Cryptography Fundamentals in Wikantik

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.

Password Hashing

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.

Supported Algorithms

The system supports two primary hashing formats, prefixed for identification:

  1. {SHA256} (Recommended): The modern standard for Wikantik. It uses SHA-256 with a salt, providing strong resistance against collision and pre-image attacks.
  2. {SSHA} (Legacy): Salted SHA-1. This is maintained primarily for backward compatibility with legacy JSPWiki installations but is deprecated for new user accounts.

Storage Format

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.

API Key Management

Wikantik interacts with several external services that require API keys:

Best Practices

Transport Security (TLS)

Wikantik is designed to run behind a TLS-terminating reverse proxy (like Nginx, Apache, or Cloudflare).

See Also