Как отправить сравнение на ха sh в express? сервер клиенту - PullRequest
0 голосов
/ 23 января 2020

Мне нужно ответить, когда клиент запрашивает сервер ha sh для создания и авторизации доступа к файлам, как я могу подтвердить, что ha sh равен сообщению, используя node.js и express:

const express = require("express");
const bodyParser = require("body-parser");
const request = require("request");
const sha1 = require('sha1');
const app = express();
app.use(express.static("public"));
app.use(bodyParser.urlencoded({extended: true}));
app.get('/', function(request, response) {
  var x1 = request.query.x1; 
  var x2 = request.query.x2; 
  var x3 = request.query.x3; 
  var x4 = 654321; 
  var hash = sha1(x2+x3+x4)
});
app.listen(process.env.PORT || 3000, function() {
  console.log("Server is running in port 3000!");
});

*

1 Ответ

2 голосов
/ 23 января 2020

Вы можете использовать модуль 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)

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...