public static void main(String[] argv) throws Exception { byte[] salt = new byte[5]; SecretKeySpec skeySpec = new SecretKeySpec(Crypt.getRawKey("my secret", "salt".getBytes()), "AES"); Cipher encryptCipher = Cipher.getInstance("AES"); encryptCipher.init(Cipher.ENCRYPT_MODE, skeySpec); Cipher decryptCipher = Cipher.getInstance("AES"); decryptCipher.init(Cipher.DECRYPT_MODE, skeySpec); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", 5, Integer.MIN_VALUE); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", Integer.MIN_VALUE, Integer.MIN_VALUE); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", Integer.MAX_VALUE, Integer.MIN_VALUE); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", -1, -1); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", -1, Integer.MAX_VALUE); System.out.println("repeat!"); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", 5, Integer.MIN_VALUE); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", Integer.MIN_VALUE, Integer.MIN_VALUE); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", Integer.MAX_VALUE, Integer.MIN_VALUE); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", -1, -1); testEncryptDecrypt(encryptCipher, decryptCipher, "foo", -1, Integer.MAX_VALUE); System.out.println("longs"); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", 5, Long.MIN_VALUE); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", Long.MIN_VALUE, Long.MIN_VALUE); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", Long.MAX_VALUE, Long.MIN_VALUE); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", -1, -1); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", -1, Long.MAX_VALUE); System.out.println("repeat!"); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", 5, Long.MIN_VALUE); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", Long.MIN_VALUE, Long.MIN_VALUE); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", Long.MAX_VALUE, Long.MIN_VALUE); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", -1, -1); testEncryptDecryptLong(encryptCipher, decryptCipher, "foo", -1, Long.MAX_VALUE); }