我使用Microchip ATECC508A安全芯片的sha256功能。我的代码如下所示:
int main(void) {
uint8_t message[32] = {0}; // Method 1
//uint8_t message[32] = "00000000000000000000000000000000"; // Method 2
foobar(message, sizeof(message));
}
void foobar(uint8_t *message, int length) {
uint8_t digest[32];
sha256(message, length, digest);
// printf statements for calculated hashes ...
}
Run Code Online (Sandbox Code Playgroud)
方法1:66687AADF862BD776C8FC18B8E9F8E20089714856EE233B3902A591D0D5F2925
方法2:84E0C0EAFAA95A34C293F278AC52E45CE537BAB5E752A00E6959A13AE103B65A
方法2推导了我期望的32个零的对应哈希,但是当我在方法1中使用静态数组初始化程序时,哈希是错误的,我也不知道为什么。我在这里检查了生成的sha256哈希值。
我将不胜感激,非常感谢。
编辑:
我能够使用零字符来初始化整个数组:
uint8_t message[32] = { [0 ... 31] = '0'}。
这仅适用于gcc编译器。
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |