Могу ли я использовать шифрование SHA-224 в Dialogflow Node.js?

# #node.js #encryption #hash #dialogflow-es #sha

Вопрос:

Я пытаюсь зашифровать ввод пользователя и сравнить его с зашифрованной строкой в базе данных в dialogflow.

Как я могу добавить пакет crypto в package.json и заставить SHA-224 работать в index.js? Я попробовал свой код, но ничего не произошло.

Код Python для шифрования данных для последующего сравнения:

 import hashlib
import pandas as pd
strings = []

data = pd.read_csv("DBDATA.csv")
df = data[['ID']]

for index, row in df.iterrows():
    b = row["ID"].encode('utf-8')
    print(b)
    hashed = hashlib.sha224(b).hexdigest()
    strings.append(hashed)
data["NUMBER"] = strings
 

Код Javascript для шифрования пользовательского ввода:

   const crypto = require('crypto');

  var hash = crypto.createHash('sha224');
  var string = agent.parameters.adminnumber;
  var hashedString = hash.update(string, 'utf-8');
  var gen_hash= hashedString.digest('hex');
 

Пакет.json

 "dependencies": {
    "crypto": "4.0.0"
  }
 

Узлы Диалогового потока

Ответ №1:

Код хорошо работает для меня (используя жестко закодированную «строку» var). Может быть, вы ничего не видите, потому что не регистрируете результат.

Не забудьте установить crypto пакет с помощью npm install crypto --save команды или просто npm install , если зависимость уже существует в package.json файле.

 const crypto = require('crypto');

const hash = crypto.createHash('sha224');
const string = "Test SHA-224 crypto.";
const hashedString = hash.update(string, 'utf-8');
const gen_hash= hashedString.digest('hex');

console.log(gen_hash); // Trace the result
 

Примечание: var ключевое слово заставляет плакать младенца Иисуса христа

Комментарии:

1. О, мое спасибо за это! В любом случае, верны ли мои зависимости для криптографии? хе-хе, кроме того, после получения gen_hash я фактически сравниваю его с данными базы данных, чтобы сделать снимок ключа. var ref = admin.database().ref("NUMBER"); ref.orderByValue().equalTo(gen_hash). on("child_added", function(snapshot) { id = snapshot.key; }); В моей базе данных хранится хэшированная строка, которая должна совпадать с той, что в node.js верно? Так как это оба sha224?

2. @user16381662 Да, если оба значения в sha224 должны быть равны. Моя крипто-версия «1.0.1», когда я устанавливаю ее для вашего примера, но этот пакет больше не поддерживается. Теперь это встроенный модуль узла (в зависимости от вашей версии nodejs). Я рекомендую вам удалить зависимость из package.json и переустановить ее с помощью команды npm install crypto --save .