mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-20 21:35:50 +00:00
77 lines
1.6 KiB
TypeScript
77 lines
1.6 KiB
TypeScript
import { Injectable } from '@angular/core';
|
|
import { AES, enc, SHA1 } from 'crypto-js'
|
|
|
|
@Injectable({
|
|
providedIn: 'root'
|
|
})
|
|
export class LocalstoreService {
|
|
|
|
private prefix = 'v14-'
|
|
|
|
constructor() {
|
|
|
|
const key = SHA1('version').toString()
|
|
this.set(key, this.prefix)
|
|
}
|
|
|
|
getKey(keyName) {
|
|
return this.prefix + keyName
|
|
}
|
|
|
|
get( keyName, safe) {
|
|
|
|
keyName = this.getKey(keyName)
|
|
|
|
const ciphertext = localStorage.getItem(keyName)
|
|
|
|
const hashKey = SHA1(keyName).toString()
|
|
|
|
if(ciphertext) {
|
|
const bytes = AES.decrypt(ciphertext, hashKey)
|
|
var decryptedData = bytes.toString(enc.Utf8);
|
|
try {
|
|
return JSON.parse(decryptedData)
|
|
} catch {
|
|
return decryptedData;
|
|
}
|
|
|
|
} else {
|
|
return safe
|
|
}
|
|
}
|
|
|
|
set(keyName, value) {
|
|
|
|
keyName = this.getKey(keyName)
|
|
|
|
if(typeof(value) != 'string') {
|
|
value = JSON.stringify(value)
|
|
}
|
|
|
|
const hashKey = SHA1(keyName).toString()
|
|
|
|
const data = value
|
|
const encoded = AES.encrypt( data, hashKey).toString();
|
|
localStorage.setItem(keyName, encoded)
|
|
}
|
|
|
|
}
|
|
|
|
export const localstoreService = new LocalstoreService()
|
|
|
|
console.log( AES.encrypt( 'pode ser qualquer', 'ayrton').toString() )
|
|
|
|
// // Create WebSocket connection.
|
|
// const socket = new WebSocket('ws://localhost:8080');
|
|
|
|
// // Listen for messages
|
|
// socket.addEventListener('message', function (event) {
|
|
// console.log('Message from server ', event.data); // Message from server mobile first é fraco
|
|
|
|
// var p = Promise.resolve(event.data);
|
|
// p.then(function(v) {
|
|
// console.log(v); // mobile first é fraco
|
|
// });
|
|
|
|
// });
|