App Inventor Extensions

AES Encrypt/Decrypt Extension

See the App Inventor Extensions document about how to use an App Inventor Extension.

For questions about this extension, bug reports and feature requests, please start a new thread in the App Inventor Extensions forum. Thank you.

Mar 25th, 2016: Initial Version 1 for App Inventor version ai2extensions7 and Companion version 2.36cdk1

Aug 11th, 2016: Version 1a: avoid DX execution failed error: build each extension separately

Hashing vs. Encryption algorithms

There is a fundamental difference between Hashing and Encryption algorithms, see this stackoverflow answer: Hashing is one way. You can not get your data/string from a hash code. Encryption is 2 way - you can decrypt again the encrypted string if you have the key with you. In case you are interested in Hashing, see my Tools Extension.


Extension to encrypt/decrypt strings.
Required permissions: android.permission.READ_EXTERNAL_STORAGE, android.permission.WRITE_EXTERNAL_STORAGE

This extension uses the AESCrypt-Android library. Thank you Scotty!
"Simple API to perform AES encryption on Android with no dependancies.
AESCrypt-Android is the Android counterpart to the AESCrypt Ruby library created by Gurpartap Singh.
AESCrypt is a simple to use, opinionated AES encryption / decryption that just works.
AESCrypt uses the AES-256-CBC cipher and encodes the encrypted data with Base64.

AESCrypt-Android uses the following defaults:
- 256-bit AES key
- CBC mode
- PKCS7Padding
- Blank/Empty IV

Known Issues

According to the issues list of the AESCrypt-Android library the encryption result is different on Android compared to iOS or php! I'm therefore planning to use another Android library instead, which will be released soon.




Example Use



Questions and Answers

Q1: If I use the extension in a Play Store app, can someone identify and extract the password/key from the .apk by decompiling?
A: Use the Obfuscated text block from the text drawer to store the key and to have some additional security, you can also follow this Security Recommendation (valid for In App Billing, but generally a good idea): It is highly recommended that you do not hard-code the exact public license key string value as provided by Google Play. Instead, you can construct the whole public license key string at runtime from substrings, or retrieve it from an encrypted store, before passing it to the constructor. This approach makes it more difficult for malicious third-parties to modify the public license key string in your APK file.

Do you need help with your App Inventor project?

I can help you: for one hour I charge 25 USD.
Please contact me at info [at] puravidaapps [dot] com for details!
For questions about App Inventor, please use the App Inventor forum. Thank you.

Download the example app to test the functionality of the AES extension

Download AES test app (apk file)

Note: The Test app (apk file) uses a special version of the extension, which means, in one day in the future the extension will display an error message and will stop working. This was necessary to prevent dishonest people from extracting the extension from the apk file. Extracting a paid extension from an apk file violates the intellectual property rights of Pura Vida Apps. Don't do that! Thank you.

Buy the AES extension for App Inventor

You can buy this extension (aix file).
With your payment you accept the terms and conditions below.

Payment options

1. Paypal

Please transfer 10 USD via Paypal.

2. Bitcoin

After having received your payment I will be happy to send the extension (aix file) to you.
Thank you! Taifun

Please check your spam folder in case you did not receive the extension!
I usually will send the extension not later than 24 hours after having received your payment.


Terms and Conditions

Back to top of page ...

Home | Snippets | Tutorials | Extensions | News | Forums | Links | Search | Contact