Sha256
使用openssl在c ++中獲取sha256雜湊的正確方法?
給定以下變數:
unsigned char text [] = "Test String"; unsigned int len = strlen ((const char*) text); unsigned char hash [SHA256_DIGEST_LENGTH];
有沒有理由這樣做…
SHA256_CTX sha256; SHA256_Init (&sha256); SHA256_Update (&sha256, text, len); SHA256_Final (hash, &sha256);
而不是簡單地這樣做?
SHA256 (text, len, hash);
對我來說,它們都產生相同的結果。有沒有可能沒有的情況?
此外,SHA256 函式是否總是返回作為其第三個參數傳遞的相同指針,還是在某些情況下它可能返回其他內容?
這可能更適合在Cryptography StackExchange上提出。
我認為這
SHA256()
比_CTX, _Init, _Update, _Final
功能更可取。IIRC,這些後面的“低級”功能不推薦用於外部使用:推薦的方法是使用 EVP 介面,它就是這樣
SHA256()
做的。根據這裡的程式碼,返回值要麼是第三個參數,要麼是空指針。