我找不到在C中使用「SHA-512」加密字符串的示例。012le有人可以幫助我使用某些代碼或鏈接。 預先感謝您。加密SHA512在c中的示例
回答
您可以使用GLib的這件事情,要知道G_CHECKSUM_SHA512的,它可能會要求您安裝GLib的較新版本,請訪問:https://developer.gnome.org/glib/stable/glib-Data-Checksums.html
#include <glib.h>
#include <string.h>
int
main(void)
{
char *string = "Hello World";
gchar *sha512;
sha512 = g_compute_checksum_for_string(G_CHECKSUM_SHA512, string, strlen(string));
g_print("%s\n", sha512);
g_free(sha512);
return 0;
}
編譯
$ gcc -o sha512 sha512.c `pkg-config --cflags --libs glib-2.0`
SHA-512不是加密算法,它是一個cryptographic hash,它是完全不同的。
您可以用來執行SHA散列的一個庫是OpenSSL。下面是使用OpenSSL計算一些數據的原始SHA-512散列的例子:
#include <openssl/sha.h>
...
char data[] = "data to hash";
char hash[SHA512_DIGEST_LENGTH];
SHA512(data, sizeof(data) - 1, hash);
// 'hash' now contains the raw 64-byte binary hash. If you want to print it out
// in a human-readable format, you'll need to convert it to hex, e.g.
推薦答案!不過,我認爲你需要做sizeof(data)-1來排除終止空字符。 – JustinB
@JustinB是或他可以使用'strlen(data)' – jackcogdill
謝謝,我需要看到這個答案。 – jackcogdill
如果要使用SHA-512,請考慮使用「鹽」值,使彩虹表攻擊更難存儲密碼。例如,「12345678」將是一個隨機字符串。 「$ 6 $」標記SHA-512:
#include <crypt.h>
#include <stdio.h>
int main() {
char *hash = crypt("secret", "$6$12345678");
printf("hashed=%s\n", hash);
}
謝謝你的回答,我找到了一個SHA1代碼,我使用它,它比MD5更好,而且仍然很強大。我將在密碼中使用salt值並將哈希存儲在文件中,只有超級用戶才能訪問該文件。如果我錯了,糾正我。 –
- 1. android sha512示例
- 2. 鹽+ SHA512 + MD5加密
- 3. C#DES加密示例
- 4. Python SHA512與PHP加密
- 5. C#AES256加密使用System.Security.Cryptography.Aes示例
- 6. 在C++中解密AES示例
- 7. 如何使用SHA512加密哈希值
- 8. 如何發佈sha512加密數據
- 9. 從sha512哈希加密文件?
- 10. sha512安全的密碼
- 11. 如何在C#中重現適合PHP SHA512的SHA512哈希?
- 12. 在C#中加密加密#
- 13. 示例加密媒體擴展加密
- 14. 在F#中實現AES加密(根據MSDN C#示例)
- 15. Ruby中的sha512密碼檢索php
- 16. 密碼SHA512兩次x
- 17. Vb.net解密SHA512哈希
- 18. AES加密,示例代碼
- 19. Opengpg.js加密/ Decrypyt示例
- 20. 密碼加密:PBKDF2(使用sha512 x 1000)vs Bcrypt
- 21. 計算HMAC-SHA512在Java密鑰
- 22. 在C++中加密/解密在x86中
- 23. 如何檢查crypt(3)sha512的密碼?
- 24. 保護用戶的密碼 - Rfc2898DeriveBytes VS SHA512
- 25. SHA512哈希算法的密鑰大小
- 26. 用於AES非對稱文件加密的C#示例
- 27. PHP在C++中的示例
- 28. 移植的Java加密例程以C#
- 29. SHA512散列到C#中的字符串
- 30. 在PHP中的SHA512 - 如何?
SHA 512不是加密算法。而是用於散列。你卡在哪裏?你真的想做什麼? –
請參閱[這裏](http://stackoverflow.com/questions/12772102/how-to-convert-openssl-sha-512-hash-to-gmp-number-to-use-in-rsa-encryption-metho)在SO上。 – kgdesouz