aes-cross

1.1.2 • Public • Published

A real cross platforms AES encryption-decryption solution. Support Java,javascript,typescript,C,nodeJs,Android,IOS...

Build Status

中文说明

How to use AES cross platforms

Make these paras to be same in all platforms.

  • cipher mode: ECB,CBC,CFB,OFB,CTR,XTS...
  • key size: 128, 256
  • iv: init vector
  • padding: NoPadding,ZeroPadding,PKCS5Padding,PKCS7Padding,ISO10126Padding,ANSI X.923...
  • key: the key for encription and decryption

more information

nodejs api

const aes = require('aes-cross');
/**
 * AES encription
 * @param  {string/bytes} [target]
 * @param  {string/bytes} [key]         the length must be 16 or 32
 * @param  {string/bytes} [iv]       default is zero16IV
 * @param  {string} [inputEncoding]  ["utf8" -default,"ascii","base64","binary"...](https://nodejs.org/api/buffer.html#buffer_buffer)
 * @param  {string} [outputEncoding] ["base64" -default,"hex"...]
 * @param  {string} [algorithm] ["aes-128-cbc" -default]
 * @return {string}                 encription result
 */
 aes.enc(target, key, iv = zero16IV, inputEncoding = 'utf-8', outputEncoding = 'base64', algorithm = 'aes-128-cbc', autoPadding = true);

 /**
  * AES decription
  * @param  {string/bytes} [target]
  * @param  {string/bytes} [key]         the length must be 16 or 32
  * @param  {string/bytes} [iv]       default is zero16IV
  * @param  {string} [input_encoding]  ["utf8" - default,"ascii","base64","binary"...](https://nodejs.org/api/buffer.html#buffer_buffer)
  * @param  {string} [output_encoding] ["base64"- default ,"hex"...]
  * @param  {string} [algorithm] ["aes-128-cbc" -default]
  * @return {string}                 decription result
  */
  aes.dec(target, key, iv = zero16IV, inputEncoding = 'base64', outputEncoding = 'utf-8', algorithm = 'aes-128-cbc', autoPadding = true);

nodejs USEAGE

const aes = require('aes-cross');

const key = 'b9da49a54f15324d';
const src = 'abcde';

const key128iv = Buffer.from([12, 13, 12, 33, 33, 44, 3, 34, 44, 44, 9, 45, 28, 44, 22, 2]);
const key256iv = Buffer.concat([key128iv, key128iv]);


// aes-128-cbc
let enced = aes.enc(src, key, key128iv);
console.log('enced:', enced);
let deced = aes.dec(enced, key, key128iv);
console.log('deced:', deced);


// aes-128-ecb, ECB must use emptyIV
let algorithm = 'aes-128-ecb';

enced = aes.enc(src, key, aes.emptyIV, 'utf-8', 'base64', algorithm);
console.log('enced:', enced);
deced = aes.dec(enced, key, aes.emptyIV, 'base64', 'utf-8', algorithm);
console.log('deced:', deced);


// aes-256-cbc
algorithm = 'aes-256-cbc';
const orgText = 'asdfW  #)(ssff234';

enced = aes.enc(orgText, key256iv, aes.zero16IV, 'utf-8', 'base64', algorithm);
console.log('enced:', enced);
deced = aes.dec(enced, key256iv, aes.zero16IV, 'base64', 'utf-8', algorithm);
console.log('deced:', deced);

typescript

A pure AES in typescript, zero dependencies, can be used anywhere.

file: typescript/AES.ts

Read more

Package Sidebar

Install

npm i aes-cross

Weekly Downloads

463

Version

1.1.2

License

MIT

Unpacked Size

38 kB

Total Files

11

Last publish

Collaborators

  • keel