jodd-joy/src/main/java/jodd/joy/auth/simtok/SimTokCoder.java
public SimTok decode(final String token) {
		final int ndx = token.indexOf('.');
		final String p1 = token.substring(0, ndx);
		final int ndx2 = token.indexOf('.', ndx + 1);
		final String p2 = token.substring(ndx + 1, ndx2);
		final String p3 = token.substring(ndx2 + 1);

		if (!BCrypt.checkpw(p1 + "." + p2 + "." + SECRET, p3)) {
			return null;
		}

		final String p2Decoded = Base64.decodeToString(p2);
		return JsonParser.create().parse(p2Decoded, SimTok.class);
	}
public SimTok decode(final String token) {
		final int ndx = token.indexOf('.');
		final String p1 = token.substring(0, ndx);
		final int ndx2 = token.indexOf('.', ndx + 1);
		final String p2 = token.substring(ndx + 1, ndx2);
		final String p3 = token.substring(ndx2 + 1);

		if (!BCrypt.checkpw(p1 + "." + p2 + "." + SECRET, p3)) {
			return null;
		}

		final String p2Decoded = Base64.decodeToString(p2);
		return JsonParser.create().parse(p2Decoded, SimTok.class);
	}
Decodes the String to the {@link SimTok}.
Returns {@code null} if decoded token is NOT valid.