- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我得到了一个 MD5 输出(一个 16 字节的十六进制字符串),我需要弄清楚用于生成哈希值的消息是什么。
我想将它与 gcrypts gcry_md_hash_buffer()
的输出进行比较,但我确定如何以 strcmp()
知道的方式声明它两者是相同的。
我之前尝试过这个:
char answerHash[16] = {0x57, 0x50, 0x1a, 0xc7, 0xb9, 0xd5, 0x44, 0x0a, 0xde, 0xe8, 0xb3, 0xdd, 0x97, 0x09, 0x72, 0xcb};
但是当我尝试 printf() 时,最终吃掉了不同字符串的一部分
问题区域示例:
gcry_md_hash_buffer(GCRY_MD_MD5, result, answerString, strlen(answerString));
char answerHash[16] = {0x57, 0x50, 0x1a, 0xc7, 0xb9, 0xd5, 0x44, 0x0a, 0xde, 0xe8, 0xb3, 0xdd, 0x97, 0x09, 0x72, 0xcb};
if(strcmp(result, answerHash) == 0){
printf("strcmp() works.\n");
}
编辑:我认为我没有正确解释这一点。我们再试一次。
教授有一条 secret 消息,并向我们提供了它的 MD5 哈希输出。他要我们写一个程序,通过暴力破解找到原始消息。
消息有 11 个字符长,但他已经告诉我们其中 5 个字符是什么。由此,我猜出了 secret 信息,但我还是要写程序。 :(
我已经让 MD5 部分工作了,但我需要弄清楚如何根据他给我们的 MD5 获得我的 MD5 的输出。
换句话说,我需要声明一个变量,以便它包含 profs 哈希,并且可以(通过 strcmp() 或 memcmp(),我不挑剔)与从 gcry_md_hash_buffer( )。编辑2:
安托万明白了。 memcmp() 可以解决问题!非常感谢!
最佳答案
首先,您应该使用假定固定大小数组的 memcmp
,而不是假定以零结尾的字符串的 strcmp
,因为您的哈希可能包含零。
其次,我不知道 answerString
来自哪里,但是如果您正在进行强力搜索,则不确定是否能恢复原始字符串,而只是恢复具有相同值的字符串MD5 哈希值。这可能足以也可能不足以满足您的目的。
否则,我不确定您的问题是什么:
#include <string.h>
static const char a[16] = {0x57, 0x50, 0x1a, 0xc7, 0xb9, 0xd5, 0x44, 0x0a, 0xde, 0xe8, 0xb3, 0xdd, 0x97, 0x09, 0x72, 0xcb};
static const char b[16] = {0x57, 0x50, 0x1a, 0xc7, 0xb9, 0xd5, 0x44, 0x0a, 0xde, 0xe8, 0xb3, 0xdd, 0x97, 0x09, 0x72, 0xcb};
return memcmp(a, b, 16); // => returns 0
现在,您提到了printf
。我希望您没有执行 printf(a)
?因为您的散列是一个 char 数组,或者是 C
中的 char*
数组,不幸的是,它也恰好是字符串类型。但两者之间的关键区别在于 C 字符串以零结尾。这意味着每个接受字符串的函数(例如 printf
或 strlen
)除了其 char*
输入以 0
。如果不是这种情况,它将危险地扫描变量外部的内存,直到找到 0 字节。
关于将 gcrypt MD5 输出与现有哈希进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20322075/
我正在尝试在具有多个轴的 matplotlib 上显示悬停标签。 我正在使用 python 3.6.8 和 matplotlib 3.0.3 我的情节有多个轴,我查看了这篇文章中的示例: Possib
我有这个: 1.test fred 5 <i>(9.5h)</i> 我看到的是这样的: 我无法更改跨度标签,它是 fullcalendar 的一部分。我该怎么做才能看到斜体而不
如何制作这个标签单击复选框时出现?现在它是隐藏的。 Bark Bark Hear a dog CSS: .bark{ visibility: hidden } input[type="checkb
我是编码初学者,我需要以下代码的帮助。我正在努力制作“你输了!”标签在计时器为零后出现,但是当我尝试这样做时;它没有显示任何内容。请帮助我! class Game: SKScene { let
实际上,在 api 调用之前,只有 Label 可见且为空文本。获得响应后标签字符计数大于零。但是这里如何等待字符数大于零的标 checkout 现并执行某些操作。 这是我使用的代码,但我收到谓词错误
我正在使用以下 HTML 代码: hr { border: none; border-top: 3px double #333; color: #333; overflow: visi
我想去掉特定标记的出现,保持内部 XML 完好无损。我想一次完成(而不是搜索、替换并再次从头开始)。例如,来自源: Content Here More Her
我正在尝试弄清楚如何让 slider 说出两个不同的内容。我希望 slider 上方的输入以 1.25 美元的二十步表示美元金额(20 到 45 之间)——但我希望实际句柄只说单个整数答案,如 1..
我正在使用 matplotlib 基于数据框制作步骤图,但我希望显示数据框的键/值之一( signals_df['Gage'] ),而不是坐标作为注释,但我总是收到错误:AttributeError:
有什么方法可以让我看到所有标签吗?正在绘制所有点,工具提示正确显示标签和值,但 X 轴上的所有标签都不可见。 最佳答案 是的,有办法。您需要将 x 轴刻度的 autoSkip 属性设置为 false,
我是一名优秀的程序员,十分优秀!