public void setBlockSize(int blockSize) {
        this.blockSize = Math.max(DEFAULT_BLOCK_SIZE, blockSize);
        //clear out the transformation string so the next invocation will rebuild it with the new block size:
        this.transformationString = null;
    }
Sets the block cipher's block size to be used when constructing
{@link javax.crypto.Cipher Cipher} transformation string.  {@code 0} indicates that the JCA Provider default
block size for the specified {@link #getAlgorithmName() algorithm} should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations ({@link #encrypt(byte[], byte[])} and {@link #decrypt(byte[], byte[])}).  The
{@link #getStreamingBlockSize() streamingBlockSize} attribute is used when the block cipher is used for
streaming operations.
<p/>
The default value is {@code 0} which retains the JCA Provider default.
<p/>
<b>NOTE:</b> block cipher block sizes are very algorithm-specific.  If you change this value, ensure that it
will work with the specified {@link #getAlgorithmName() algorithm}.

@param blockSize the block cipher block size to be used when constructing the
                 {@link javax.crypto.Cipher Cipher} transformation string, or {@code 0} if the JCA Provider
                 default block size for the specified {@link #getAlgorithmName() algorithm} should be used.
crypto/cipher/src/main/java/org/apache/shiro/crypto/cipher/DefaultBlockCipherService.java