c - 为什么我的 SHA256 和不同?

标签 c checksum glib

我正在使用 glib 生成 SHA256 校验和。它似乎工作正常,但是当我使用 sha256sum 验证输出时,我得到了不同的结果。知道发生了什么事吗?

char* createChecksumString(const char* buffer) {
    //Create SHA256 checksum using glib
    gchar* checksum = g_compute_checksum_for_string(G_CHECKSUM_SHA256,
        buffer, -1);

    printf("%s\n", buffer);
    printf("%s\n", checksum);

    .
    .
    .
}

.
.
.

const char* msg = "Hello SHA256";
char* checksum = createChecksumString(msg);

上面的代码产生:

Hello SHA256

70725d0f78cb0967c0e5171f733619712d239e28f2d279e4b3c3ed97f7456fa3

sha256sum 产生不同的输出。见下文:

echo "Hello SHA256" | sha256sum

e32bd03f46f51d4a5c903429fea1c31032d8d7aa689c764141b7cebd74f4e140

最佳答案

echo "Hello SHA256" 打印换行符。

尝试使用 echo -n "Hello SHA256"| sha256sum.

关于c - 为什么我的 SHA256 和不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7463807/

相关文章:

javascript - 我需要使用字母数字校验和来验证输入字符串

c - 如何在C中设置getchar的最大等待时间

C - 多条 slider

c - 如果变量是 char 或 int,算术运算会有所不同

arrays - Swift 字节校验和

c - 关于 C 库如何工作的问题

c - 根据字符验证整数

c - NMEA校验和计算计算

c - glib/gmessages.h 中的日志处理程序

c - GLib 在 XCode 中的使用