1.0.6 • Published 4 years ago

@ashiteam/ashi-aes-ng v1.0.6

Weekly downloads
15
License
-
Repository
-
Last release
4 years ago

AshiAesNg

A helper angular service for my use to encrypt/decrypt binary data and string data using a password.

Installing

Install using npm

npm i @ashiteam/ashi-aes-ng --save

The password to use for encryption/decryption can be set using the setPassword function or passed in as an optional parameter to the encrypt/decrypt functions.

Import the service and use it as follows.

import { AshiAesNgService } from '@ashiteam/ashi-aes-ng';

...
constructor(private aesSvc: AshiAesNgService) {
    this.aesSvc.setPassword('some password');
}

someFunc() {
    ...
    const encData = this.aesSvc.encryptText(data);
    ...
}
...

Some Implementation Details

The key used for encryption/decryption is a 256 bit key generated using pbkdf2 using a random salt of 16 bytes long using 100 iterations. The 100 iterations is the default, this however can be changed to a different value by setting the iterations property.

When encrypting:

  • The random salt is stored as the firs 16 bytes of the output.
  • A randome iv of 16 bytes is generated and used and stored as the second 16 bytes of the output.
  • The encrypted data is stored starting from the 32nd byte

When decrypting:

  • The salt from the first 16 bytes are used to generate the key
  • The second 16 bytes are used as the initial vector (iv)

Note

Data encrypted using other tools or languages (such as Java, C#, ...) can be decrypted by this code (and vice versa) provided the salt & iv are stored as the first 32 bytes, and the key is generated as mentiond above.

Authors

  • Asanga Weerapura - All work

License

This project is licensed under the MIT License.

Acknowledgments

  • node-forge
  • buffer
  • @ashiteam/ashi-aes
1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago