See also:


This is a new feature part of JSPWiki 2.10.2

The WikiEngine, now contains access to a CryptoManager which can be accessed by wikiEngine.getCryptoManager()

The CryptoManager has one function getCryptoProvider() which gets the CryptoProvider as specified by jspwiki.cryptoProvider property in The CryptoProvider has the following interface methods:

  public byte[] encrypt(char[] key, byte[] content) throws EncryptionException;
  public byte[] decrypt(char[] key, byte[] content) throws EncryptionException;
CryptoProvider cryptoProvider = wikiEngine.getCryptoManager().getCryptoProvider();
byte[] encrypted = cryptoProvider.encrypt("secretkey".toCharArray(),"content".getBytes());
String decrypted = new String(cryptoProvider.decrypt("secretkey".toCharArray(),encrypted));


The default value for the cryptoProvider is a which is an Identity provider, and does no encryption or decryption at all.

The BaseCryptoProvider can be a base class to other cryptoProviders.

It reads the value jspwiki.cryptoFile (defaults to and loads these properties into cryptoProperties i.e. getCryptoProperties()


Another cryptoProvider implementation is the PBECryptoProvider (Password Base Encryption).

This provider expects the following cryptoProperties:

Property description type default
crypto.base64 if true changed encrypted string to base64 boolean true
crypto.salt The salt used to create the PBEParameterSpec String A random string
crypto.blocksize The block size of the salt for the PBE algorithm int 8
crypto.itrcount The iteration count for the PBE algorithm int 2048
crypto.algorithm The algorithm to be used as per CryptoSpec String PBEWithMD5AndDES