`
cakin24
  • 浏览: 1396450 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Linux下openssl的第1个程序

阅读更多

openssl是开源的,可以在上面编写测试代码,怎样编写呢?在此举一个例子。

第一步:编写1个测试程序MD5test1.c,代码如下
  1. #include<stdio.h>
  2. #include<openssl/md5.h>
  3. #include<string.h>
  4. int main(int argc,char**argv )
  5. {
  6. MD5_CTX ctx;
  7. unsignedchar*data="123";
  8. unsignedchar md[16];
  9. char buf[33]={'\0'};
  10. char tmp[3]={'\0'};
  11. int i;
  12. MD5_Init(&ctx);
  13. MD5_Update(&ctx,data, strlen (data));
  14. MD5_Final(md,&ctx);
  15. for( i=0; i<16; i++)
  16. {
  17. sprintf (tmp,"%02X",md[i]);
  18. strcat (buf,tmp);
  19. }
  20. printf ("%s\n",buf);
  21. return0;
  22. }
第二步:将该代码放在如下目录:
/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

 

1
0
分享到:
评论

相关推荐

    RedHat 6.5离线安装openssl-devel顺序

    OpenSSL是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现,同时还提供了各种密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序用于测试或其他目的。`openssl-devel`包则包含编译...

    openssl库源码,3.2.0版本

    这个库被广泛应用于各种操作系统,包括 Linux,在开发与网络安全相关的应用程序时,OpenSSL 是不可或缺的组件。3.2.0 版本是 OpenSSL 的一个更新版本,通常会包含性能优化、新功能、以及对安全问题的修复。 **...

    openssl-1.0.0a

    Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的...

    openssl安装.zip

    例如,你可以使用`openssl s_client`命令来检查一个网站的SSL/TLS连接,或者使用`openssl req`创建自签名的服务器证书。 7. **安全注意事项** 保持OpenSSL版本的更新至关重要,因为安全漏洞经常被发现并修复。定期...

    OpenSSL-1_1_0f

    "OpenSSL-1_1_0f" 指的是 OpenSSL 的一个特定版本,即 1.1.0f。这个版本是在其系列中的一次更新,主要包含了安全修复、性能优化和其他改进。 在 SSL/TLS 协议中,主要负责在网络中提供安全的数据传输,确保用户与...

    openssl,ssl工具

    OpenSSL 是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及 SSL 协议,并提供丰富的应用程序供测试或其他目的使用。SSL(Secure Sockets Layer)是网络通信中的一种安全...

    openssl编程

    在Linux系统下可通过包管理器安装,而在Windows系统下可能需要编译源代码。源代码可以从OpenSSL的官方网站获取。学习OpenSSL的方法包括阅读文档、查看示例代码和实际编写程序实践。 ### 堆栈 第三章介绍了OpenSSL...

    OPENSSL

    OpenSSL是一个强大的安全软件工具包,它提供了一系列的加密算法、SSL/TLS协议实现以及各种安全相关的功能。OpenSSL不仅用于加密数据,还广泛应用于Web服务器、邮件服务器、FTP服务器等网络服务中,确保数据在网络中...

    openssl 编程

    2. **OpenSSL安装**:在Linux下通常通过包管理器进行安装,而在Windows上则需要编译源代码。编译过程涉及配置、编译和安装步骤。 3. **OpenSSL源代码**:了解源代码有助于深入理解其工作原理,为自定义功能或调试...

    openssl 学习整理

    5. Demos目录:存放了一些基于openssl的应用程序例子,这些例子一般都很简单,演示了如何使用openssl中的一个功能。 6. Include目录:存放了使用openssl的库时需要的头文件。 7. Test目录:存放了openssl目功能...

    openssl编程帮助文档

    #### 第一章:基础知识 **1.1 对称算法** - **概念**:对称算法是一种加密技术,在该技术中,加密和解密使用相同的密钥。 - **常见对称算法**:包括DES、3DES、AES、RC4等。 - **特点**: - 加密速度快。 - 密钥...

    openssl源码分析

    第一章,基础知识,主要涵盖了以下几个方面: 1.1 对称算法:对称加密是加密和解密使用相同密钥的加密算法,如DES、AES等。这些算法在速度上通常比非对称算法快,常用于大量数据的加密。 1.2 摘要算法:如MD5和SHA...

    linux openssl基础介绍

    Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的...

    openssl安装文件及使用方法

    1. **下载**:首先,你需要访问OpenSSL官方网站或第三方镜像站点下载适合你操作系统的版本,如Windows、Linux或macOS。 2. **安装**: - **Windows**:对于Windows用户,你可以下载预编译的安装包(如提供的"Win32...

    OpenSSL-1_0_0d_Win32

    应用程序 OpenSSL的应用程序已经成为了OpenSSL重要的一个组成部分,其重要性恐怕是OpenSSL的开发者开始没有想到的。现在OpenSSL的应用中,很多都是基于OpenSSL的应用程序而不是其API的,如OpenCA,就是完全使用...

    openssl密码库OpenSSL入门密码学基础VC源码

    OpenSSL是Linux和其他系统上流行的生产级库和工具包,提供了两种加密基础知识的第一个篇章。 OpenSSL库提供了命令行实用程序,可以从OpenSSL库中调用函数。本文的示例程序使用C语言,即OpenSSL库的源语言。本系列的...

    openssl(arm64,armv7s,armv7,x86_64,i386)

    OpenSSL 是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现库,同时也包含了大量的加密算法、证书处理和其他安全相关功能。在 iOS 开发中,OpenSSL 经常被用于提供加密通信、数据保护以及安全认证等关键...

    linux 下QT讯飞语音合成demo

    Linux下的QT讯飞语音合成Demo是一个实现了跨平台的语音合成解决方案,主要针对Linux操作系统,并且利用了科大讯飞的语音技术。科大讯飞是中国知名的语音技术提供商,其提供的API和服务广泛应用于各种应用场景,包括...

    openssl-0.9.8b.tar(另外附上windows下安装教程)

    OpenSSL是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现,同时也包含了用于各种密码学算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的使用。在网络安全中,...

Global site tag (gtag.js) - Google Analytics