Вы можете использовать модуль crypto
для генерации и декодирования ха sh. Вот пример.
const resizedIV = Buffer.allocUnsafe(16)
app.get('/', function(request, response) {
const key = crypto
.createHash("sha256")
.update('secret-key')//this should be a secret key
.digest()
const cipher = crypto.createCipheriv("aes256", key, resizedIV)
for (var prop in req.query) {
if (req.query.hasOwnProperty(prop)) {
cipher.update(req.query[prop], "binary", "hex")
}
}
const hash = cipher.final("hex")
res.send(hash)
});
и затем вы можете расшифровать его следующим образом
app.get('/decode', function(req, res) {
const key = crypto
.createHash("sha256")
.update('secret-key')
.digest()
const decipher = crypto.createDecipheriv("aes256", key, resizedIV),
decipher.update(req.query.hash, "hex", "binary")
const decoded = decipher.final("binary")
res.send(decoded)
})