Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C ';SHA1和x27;是否已弃用:在OS X 10.7中首次弃用?_C_Macos_Gcc_Openssl_Osx Mavericks - Fatal编程技术网

C ';SHA1和x27;是否已弃用:在OS X 10.7中首次弃用?

C ';SHA1和x27;是否已弃用:在OS X 10.7中首次弃用?,c,macos,gcc,openssl,osx-mavericks,C,Macos,Gcc,Openssl,Osx Mavericks,所以我试着编译一个具有SHA1函数的代码。。我包括以下标题: #include <openssl/sha.h> 但是手册页仍然有该功能的描述 有人能为类似的函数(MD5或SHA1)推荐任何其他标题吗 PS-在使用gcc编译时,我还需要链接任何库吗?您仍然可以使用它。不推荐并不意味着不可用。建议使用不同的哈希算法。您需要将libcrypto-add-lcrypto链接到要链接到的库 如果要使用更多的openssl,还需要使用-lssl在libssl中链接 因此,例如,如果您的测试代码

所以我试着编译一个具有
SHA1
函数的代码。。我包括以下标题:

#include <openssl/sha.h>
但是手册页仍然有该功能的描述

有人能为类似的函数(MD5或SHA1)推荐任何其他标题吗


PS-在使用gcc编译时,我还需要链接任何库吗?

您仍然可以使用它。不推荐并不意味着不可用。建议使用不同的哈希算法。您需要将libcrypto-add
-lcrypto
链接到要链接到的库

如果要使用更多的openssl,还需要使用
-lssl
在libssl中链接

因此,例如,如果您的测试代码是test.c,您将执行以下操作:

gcc -o test test.c -lcrypto -lssl

苹果不赞成OpenSSL,但别担心,OpenSSL是一个巨大的项目,不会很快消失

通过将
-Wno error=deprecated声明添加到命令行,可以关闭不推荐使用的错误。这将保留警告(这很有用,因为它可以帮助您捕获其他不推荐的声明),而不会导致错误


关于为什么会在这篇文章中出现这种情况,有一些争论:

你仍然可以使用它。不推荐并不意味着不可用。建议使用不同的哈希算法。您需要将libcrypto-add
-lcrypto
链接到要链接的库。那么,我的gcc命令是什么样子的呢?我需要同时链接lssl和lcrypto吗?如果您使用的是openssl特定的功能,则只需要同时链接这两个。如果您正在开发一个只支持mac的应用程序,那么我建议您使用,但是如果您只是在编写一些示例代码,那么继续使用openssl是可以的。
gcc -o test test.c -lcrypto -lssl