openssl是开源的,可以在上面编写测试代码,怎样编写呢?在此举一个例子。
第一步:编写1个测试程序MD5test1.c,代码如下
#include<stdio.h>
#include<openssl/md5.h>
#include<string.h>
int main(int argc,char**argv )
{
MD5_CTX ctx;
unsignedchar*data="123";
unsignedchar md[16];
char buf[33]={'\0'};
char tmp[3]={'\0'};
int i;
MD5_Init(&ctx);
MD5_Update(&ctx,data, strlen (data));
MD5_Final(md,&ctx);
for( i=0; i<16; i++)
{
sprintf (tmp,"%02X",md[i]);
strcat (buf,tmp);
}
printf ("%s\n",buf);
return0;
}
第二步:将该代码放在如下目录:
/openssl-1.1.0c/test
第三步:编译MD5test1.c。
[root@localhost test]# gcc -o MD5test1 MD5test1.c
/tmp/cczP8S6Z.o: In function `main':
MD5test1.c:(.text+0x6b): undefined reference to `MD5_Init'
MD5test1.c:(.text+0x8d): undefined reference to `MD5_Update'
MD5test1.c:(.text+0xa0): undefined reference to `MD5_Final'
collect2: error: ld returned 1 exit status
出现了三个错误。
错误原因是
包含md5函数的库为/usr/lib/libcrypto.a(.so),编译时要使用-lcrypto。
第四步:重新编译MD5test1.c。
[root@localhost test]# gcc -o MD5test1 MD5test1.c -lcrypto
编译成功。
第五步:运行MD5test1
[root@localhost test]# ./MD5test1
202CB962AC59075B964B07152D234B70
相关推荐
OpenSSL是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现,同时还提供了各种密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序用于测试或其他目的。`openssl-devel`包则包含编译...
Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的...
这个库被广泛应用于各种操作系统,包括 Linux,在开发与网络安全相关的应用程序时,OpenSSL 是不可或缺的组件。3.2.0 版本是 OpenSSL 的一个更新版本,通常会包含性能优化、新功能、以及对安全问题的修复。 **...
例如,你可以使用`openssl s_client`命令来检查一个网站的SSL/TLS连接,或者使用`openssl req`创建自签名的服务器证书。 7. **安全注意事项** 保持OpenSSL版本的更新至关重要,因为安全漏洞经常被发现并修复。定期...
"OpenSSL-1_1_0f" 指的是 OpenSSL 的一个特定版本,即 1.1.0f。这个版本是在其系列中的一次更新,主要包含了安全修复、性能优化和其他改进。 在 SSL/TLS 协议中,主要负责在网络中提供安全的数据传输,确保用户与...
OpenSSL 是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及 SSL 协议,并提供丰富的应用程序供测试或其他目的使用。SSL(Secure Sockets Layer)是网络通信中的一种安全...
在Linux系统下可通过包管理器安装,而在Windows系统下可能需要编译源代码。源代码可以从OpenSSL的官方网站获取。学习OpenSSL的方法包括阅读文档、查看示例代码和实际编写程序实践。 ### 堆栈 第三章介绍了OpenSSL...
OpenSSL是一个强大的安全软件工具包,它提供了一系列的加密算法、SSL/TLS协议实现以及各种安全相关的功能。OpenSSL不仅用于加密数据,还广泛应用于Web服务器、邮件服务器、FTP服务器等网络服务中,确保数据在网络中...
5. Demos目录:存放了一些基于openssl的应用程序例子,这些例子一般都很简单,演示了如何使用openssl中的一个功能。 6. Include目录:存放了使用openssl的库时需要的头文件。 7. Test目录:存放了openssl目功能...
#### 第一章:基础知识 **1.1 对称算法** - **概念**:对称算法是一种加密技术,在该技术中,加密和解密使用相同的密钥。 - **常见对称算法**:包括DES、3DES、AES、RC4等。 - **特点**: - 加密速度快。 - 密钥...
第一章,基础知识,主要涵盖了以下几个方面: 1.1 对称算法:对称加密是加密和解密使用相同密钥的加密算法,如DES、AES等。这些算法在速度上通常比非对称算法快,常用于大量数据的加密。 1.2 摘要算法:如MD5和SHA...
Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的...
1. **下载**:首先,你需要访问OpenSSL官方网站或第三方镜像站点下载适合你操作系统的版本,如Windows、Linux或macOS。 2. **安装**: - **Windows**:对于Windows用户,你可以下载预编译的安装包(如提供的"Win32...
应用程序 OpenSSL的应用程序已经成为了OpenSSL重要的一个组成部分,其重要性恐怕是OpenSSL的开发者开始没有想到的。现在OpenSSL的应用中,很多都是基于OpenSSL的应用程序而不是其API的,如OpenCA,就是完全使用...
OpenSSL是Linux和其他系统上流行的生产级库和工具包,提供了两种加密基础知识的第一个篇章。 OpenSSL库提供了命令行实用程序,可以从OpenSSL库中调用函数。本文的示例程序使用C语言,即OpenSSL库的源语言。本系列的...
OpenSSL 是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现库,同时也包含了大量的加密算法、证书处理和其他安全相关功能。在 iOS 开发中,OpenSSL 经常被用于提供加密通信、数据保护以及安全认证等关键...
OpenSSL是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现,同时也包含了用于各种密码学算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的使用。在网络安全中,...
Linux下的QT讯飞语音合成Demo是一个实现了跨平台的语音合成解决方案,主要针对Linux操作系统,并且利用了科大讯飞的语音技术。科大讯飞是中国知名的语音技术提供商,其提供的API和服务广泛应用于各种应用场景,包括...