2011-04-12 22 views
5

我一直對加密的實現在C 我需要使用哈希使用像SHA,MD5等C中有哪些廣泛使用的加密/散列庫?

在Java中流行的散列函數的任何一個消息,有一個安全庫,照顧這些事情。
但我如何在C中做同樣的事情?

例如: char * str =「這是一條消息」; char * hash = SHA(str);

這種東西。如果有人能指向我已經實現了這些功能的圖書館,那我可以給我的程序打電話,這會非常有幫助。

謝謝!

+3

爲什麼不先檢查谷歌? – Andrey 2011-04-12 15:28:29

+0

必須在'C'而不是'C++'中完成嗎? – 2011-04-12 15:28:59

+0

是否有搜索引導您訪問任何可用作示例和/或指示先前研究的相關庫? – 2011-04-12 15:29:52

回答

8

sphlib是一個開源庫,它提供了許多散列函數C中的優化(但是可移植的)實現。

OpenSSL是一個更通用的加密庫,它被廣泛部署並提供散列函數的實現(散列函數比sphlib少,但它也包含其他加密基元)。

3

OpenSSL確實被廣泛使用。對於你的例子,你可以使用

unsigned char digest[SHA_DIGEST_LENGTH]; 
char *str = "this is a string"; 
SHA1(str, strlen(str), digest);