我可以在 Dialogflow Node.js 中使用 SHA-224 加密吗?

问题描述

我正在尝试加密用户输入并与对话流中数据库中的加密字符串进行比较。

如何将加密包添加到 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');

Package.json

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

Dialogflow Nodejs

解决方法

代码对我来说效果很好(使用硬编码的“字符串”变量)。也许您什么也看不到,因为您没有记录结果。

记住使用 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 关键字让婴儿耶稣基督哭泣