【问题标题】:HMAC a struct with opensslHMAC 一个带有 openssl 的结构
【发布时间】:2017-05-04 08:36:21
【问题描述】:

我想知道是否有一种使用 openssl 对结构进行 HMAC 的简单方法,我正在考虑将所有结构字段连接到一个缓冲区中,但我不确定这是最佳/最佳方式。

希望你能帮我解决这个问题,

谢谢。

【问题讨论】:

  • 您应该针对特定问题提出特定问题。想知道如何做某事并不是 Stack Overflow 上的真正问题。由于 Stack Overflow 向您隐藏了关闭原因:“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。"

标签: struct openssl hmac


【解决方案1】:

HMAC 从另一个字节数组的输入输出散列(字节数组)。所以 - 实际上你需要从你的结构中创建一个字节数组(或多个数组)。

重要的是 - 对于唯一数据,您的结构应该是唯一的。我的意思是 - 有两个值为“abc”“def”或“abcd”“ef”的字段。如果您只是连接这些值,您将在这两种情况下都得到“abcdef”,并且可能会验证错误消息。解决方案可能是将一些常量值作为字段分隔符。

【讨论】:

  • 这会引发另一个问题,如果字段值包含字段分隔符怎么办?
  • 常量不需要相同。确实,我可以想象一种方法来欺骗这样的数组:) 字段名(唯一名称)分隔符比单个常量值更好。
  • 字段名不能解决问题。假设您有一个对象“field1”:“abcfield2”,“field2”:“def”。您可以将其反序列化为 "field1":"abc", "field2":"field2def"。
  • 我刚刚删除了一个警告,由您决定序列化是否唯一 :D(添加字段长度前缀、转义、编码......)
猜你喜欢
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 2018-12-06
  • 2015-09-07
  • 2016-02-07
  • 2014-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多