ForgeTotal.js 5
el

Total.js 5

Κρυπτογράφηση και αποκρυπτογράφηση δεδομένων με κλειδί

Total.js 5 · total5@0.0.19 securitycrypto Εκτελέστηκε με το Total.js 5

Το ENCRYPT(value, key) σειριοποιεί μια τιμή σε JSON και επιστρέφει ένα αδιαφανές κείμενο. Το DECRYPT(text, key) επιστρέφει την αρχική τιμή ή null όταν το κείμενο άλλαξε, δεν είναι έγκυρο ή κρυπτογραφήθηκε με άλλο κλειδί. Η ρύθμιση secret του config σας αναμειγνύεται στο κλειδί, ώστε tokens που δημιουργήθηκαν σε μία εγκατάσταση να μην ανοίγουν σε άλλη.

Χρησιμοποιήστε το για συνδέσμους επαναφοράς κωδικού, tokens πρόσκλησης και ό,τι δίνετε σε έναν client και επαληθεύετε αργότερα χωρίς να το αποθηκεύσετε. Βάλτε μια λήξη μέσα στην τιμή (μια χρονοσφραγίδα) και ελέγξτε την μετά την αποκρυπτογράφηση.

config
secret : change-this-secret-in-production
controllers/tokens.js
exports.install = function() {
	ROUTE('GET /token/', create);
	ROUTE('GET /verify/', verify);
};

function create($) {
	var token = ENCRYPT({ userid: '123', expire: Date.now() + 60000 }, 'reset-password');
	$.json({ token: token });
}

function verify($) {

	var data = DECRYPT($.query.token || '', 'reset-password');

	if (!data || data.expire < Date.now()) {
		$.invalid(401);
		return;
	}

	$.json({ userid: data.userid });
}