forked from kurteyki/SafePlatinum
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
46 lines (39 loc) · 1.17 KB
/
Copy pathapp.js
File metadata and controls
46 lines (39 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* remove space from string */
function trimString(str) {
return str.replace(/^\s+/, '').replace(/\s+$/, '');
}
/* global CryptoJS
* https://github.com/evgenyneu/aes-crypto-web
*/
var aesCrypto = {};
(function (obj) {
'use strict';
obj.formatter = {
prefix: '',
stringify: function (params) {
var str = this.prefix;
str += params.salt.toString();
str += params.ciphertext.toString();
return str;
},
parse: function (str) {
var params = CryptoJS.lib.CipherParams.create({}),
prefixLen = this.prefix.length;
if (str.indexOf(this.prefix) !== 0) { return params; }
params.ciphertext = CryptoJS.enc.Hex.parse(str.substring(16 + prefixLen));
params.salt = CryptoJS.enc.Hex.parse(str.substring(prefixLen, 16 + prefixLen));
return params;
}
};
obj.encrypt = function (text, password) {
try {
return CryptoJS.AES.encrypt(text, password, { format: obj.formatter }).toString();
} catch (err) { return ''; }
};
obj.decrypt = function (text, password) {
try {
var decrypted = CryptoJS.AES.decrypt(text, password, { format: obj.formatter });
return decrypted.toString(CryptoJS.enc.Utf8);
} catch (err) { return ''; }
};
}(aesCrypto));