【问题标题】:How to compute mod hash of a field using JQ?如何使用 JQ 计算字段的 mod 哈希?
【发布时间】:2021-09-23 12:39:32
【问题描述】:
{
  "a": "jdsdjhsandks"
}

如何使用 JQ 表达式计算 a 字段的模块化哈希?

【问题讨论】:

标签: jq


【解决方案1】:

jq 没有实现哈希函数,您必须导出数据,应用外部工具并重新导入哈希。

例如,如果您的 JSON 位于名为 input.json 的文件中,并且您使用 bash 调用 jq,您可以这样做:

# Export the data
data="$(jq -r '.a' input.json)"

# Apply an external tool
md5sum="$(printf '%.32s' "$(md5sum <<< "${data}")")"

# Re-import the hash
jq --arg md5sum "${md5sum}" '.a_md5 = $md5sum' input.json

或者不使用变量

jq --arg md5sum "$(
  printf '%.32s' "$(
    md5sum <<< "$(
      jq -r '.a' input.json
    )"
  )"
)" '.a_md5 = $md5sum' input.json

【讨论】:

  • md5sum 打印哈希值,后跟文件名(或者在这种情况下,- 用于标准输入)。 printf '%.32s' 只提取前 32 个字符,甚至没有换行符。
  • md5(如果有的话)更明智......
猜你喜欢
  • 2016-06-23
  • 1970-01-01
  • 2019-05-31
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多