mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-11-01 10:56:31 +08:00
18 lines
666 B
JavaScript
18 lines
666 B
JavaScript
import Aesjs from "aes-js";
|
|
|
|
export function encrypt(obj, key) {
|
|
const textBytes = Aesjs.utils.utf8.toBytes(JSON.stringify(obj));
|
|
const keyBytes = Aesjs.padding.pkcs7.pad(Aesjs.utils.utf8.toBytes(key));
|
|
return Aesjs.utils.hex.fromBytes(
|
|
new Aesjs.ModeOfOperation.ctr(keyBytes, new Aesjs.Counter(5)).encrypt(textBytes),
|
|
);
|
|
}
|
|
|
|
export function decrypt(text, key) {
|
|
const textBytes = Aesjs.utils.hex.toBytes(text);
|
|
const keyBytes = Aesjs.padding.pkcs7.pad(Aesjs.utils.utf8.toBytes(key));
|
|
return JSON.parse(Aesjs.utils.utf8.fromBytes(
|
|
new Aesjs.ModeOfOperation.ctr(keyBytes, new Aesjs.Counter(5)).decrypt(textBytes),
|
|
));
|
|
}
|