Class that uses AESCipherPlusSalt library for encryption with salt. A cryptographic salt is made up of random bits added to each password instance before its hashing. Salts create unique passwords even in the instance of two users choosing the same passwords. Salts help us mitigate hash table attacks by forcing attackers to re-compute them using the salts for each user.

1 Ax.crypt.Password

Password constructor, specifying the secret key length in bits.

Copy
// 128, 192 or 256
new Ax.crypt.Password(128);

2 Encoding and decoding

The following example shows how to encrypt and decrypt with salt using the Ax.crypt.Password library.

Copy
let pass         = new Ax.crypt.Password(128);
let word         = "Hello World Salted Salted!";
// MySuperS3cretK3y -> 16 Bytes = 128 bits
let key          = "MySuperS3cretK3y";
let encryptBytes = pass.encrypt(key, word);
let encryptStr   = new Ax.lang.String(encryptBytes);
let decryptStr 	 = pass.decrypt(key, encryptBytes);
console.log("-------");
console.log(encryptStr);
console.log(decryptStr);
-------
EGX7iM5Usr5SIrW8fwez/GsBAXaIdlOMUu18n0xuxc0w0JJuoZ9ugoOencEYrKL58NdscdkU1qEu6qeeax7xFcYhnlUsQ6srFg==
Hello World Salted Salted!

3 Deprecation

Copy
let word         = "Hello World!";
let key          = "MySuperS3cretK3y";

let pass         = new Ax.crypt.Password(256);
let aes         = new Ax.crypt.AES();

let encryptBytes, decryptStr;

encryptBytes = pass.encrypt(key, word);
decryptStr 	 = pass.decrypt(key, encryptBytes);
console.log("1 JSPassword/JSPassword   - ", new Ax.lang.String(encryptBytes), " - ", decryptStr);

encryptBytes = pass.encrypt(key, word);
decryptStr 	 = Ax.crypt.AES.decrypt(key, new Ax.lang.String(encryptBytes));
console.log("2 JSPassword/AES          - ", new Ax.lang.String(encryptBytes), " - ", decryptStr);

encryptBytes = Ax.crypt.AES.encrypt(256, key, word);
decryptStr 	 = Ax.crypt.AES.decrypt(key, new Ax.lang.String(encryptBytes));
console.log("3 AES/AES                 - ", new Ax.lang.String(encryptBytes), " - ", decryptStr);

encryptBytes = Ax.crypt.AES.encrypt(256, key, word);
decryptStr 	 = pass.decrypt(key, encryptBytes);
console.log("3 AES/JSPassword          - ", new Ax.lang.String(encryptBytes), " - ", decryptStr);


-------------

1 JSPassword/JSPassword   -  IOMuZAt+x5Ry95ahFABsv26ES0rU8tWc8e0VzojsyDGvGFrWC7yiIHi6sjVJv7ReamsfKbF72H9p  -  Hello World! 
2 JSPassword/AES          -  IIpeVciP2eAClWmpKOlBCjtneo7Sr/wKi/LyrRTYL2QRFSf1pWLu+dAbijvWjVhrhHZGlILmg9r5  -  Hello World! 
3 AES/AES                 -  INOgFcYeqsApq+T/rwJIPDQ9yDU6uycNAxHmy6gjFL2bcGiSMEADWK7OCdhQTInemdvrgxRmEGX0  -  Hello World! 
3 AES/JSPassword          -  IKG9gLqipP5/besj3JQW3aXmrIDsTkxLyUfCoOpEIChv52jrnG1fDDabiHJFKl0kI6vsuzvYE7E2  -  Hello World!