Skip to main content


This cordova ionic plugin allows you to perform AES 256 encryption and decryption on the plain text. It's a cross-platform plugin which supports both Android and iOS. The encryption and decryption are performed on the device native layer so that the performance is much faster.

Stuck on a Cordova issue?

Don't waste precious time on plugin issues.

If you're building a serious project, you can't afford to spend hours troubleshooting. Ionic’s experts offer premium advisory services for both community plugins and premier plugins.


$ npm install cordova-plugin-aes256-encryption $ npm install @ionic-native/aes-256 $ ionic cap sync

Supported Platforms#

  • Android
  • iOS



Learn more about using Ionic Native components in React


import { AES256 } from '@ionic-native/aes-256/ngx';
private secureKey: string;private secureIV: string;
constructor(private aes256: AES256) {   this.generateSecureKeyAndIV(); // To generate the random secureKey and secureIV}
async generateSecureKeyAndIV() {   this.secureKey = await this.aes256.generateSecureKey('random password 12345'); // Returns a 32 bytes string   this.secureIV = await this.aes256.generateSecureIV('random password 12345'); // Returns a 16 bytes string}
this.aes256.encrypt(this.secureKey, this.secureIV, 'testdata')  .then(res => console.log('Encrypted Data: ',res))  .catch((error: any) => console.error(error));
this.aes256.decrypt(this.secureKey, this.secureIV, 'encryptedData')  .then(res => console.log('Decrypted Data : ',res))  .catch((error: any) => console.error(error));

* this.aes256.generateSecureKey('random password 12345')  .then(res => console.log('Secure Key : ',res))  .catch((error: any) => console.error(error));

* this.aes256.generateSecureIV('random password 12345')  .then(res => console.log('Secure IV : ',res))  .catch((error: any) => console.error(error));