使用c语言实现在linux下的openssl客户端和服务器端编程 前几天组长让我实现一个使用openssl的c语言编写的客户端和java编写的服务器实现字符流的通信,给了段代码。在自己的ubuntu上跑服务器和客户端收发信息都没有问题,但是就是和java的通信不了。后来发现组长给的客户端代码有问题,于是网上找到了比较正确的客户端和服务器代码,自己做了稍微的改动。有一点要说一下,我的c客户端使
使用OpenSSL生成IIS可用的SHA-256自签名证书好吧,2017年iOS就开始强制开启ATS了,那么所有的网站、API、网页、资源路径等都需要使用TLS1.2以上的标准了! 自签名证书已经不能满足需求了!所以在正式环境上申请购买了OA证书。那么总不至于花钱在测试环境上也买一个证书吧,所以在测试环境上还是可以部署自签名证书的! 本文操作主要分为以下几点:1、开启TLS1.22、生成通配域
转载
2024-08-12 17:24:48
75阅读
目录一、SSL协议的简介二、SSL协议的工作原理三、SSL协议的脆弱性分析一、SSL协议的简介 SSL协议,即安全套接字层。可用于保护正常运行于TCP之上的任何应用协议,如HTTP、FTP、SMTP或Telnet的通信,最常见的是用SSL来保护HTTP的通信。SSL协议的优点在于它是与应用层协议无关的。高层的应用协议(如HTTP、FTP、Telnet等)能透明地建立于SSL协议之上。S
一、AES加密算法
1.1 AES算法结构
AES(Advanced Encryption Standard)算法是一种常见的对称加密算法,其具体的加密传输流程如图1所示:
图1 AES数据加密流程
对于对称加密算法而言发送端和接收端使用相同的密钥K,而加密函数E(P,K)和解密函数D(C,K)是一组逆运算。
对称加密算法的优势是算法公开、计算量小、加密速度快、加密效率高。其安全性主要由密钥
原创
2021-06-19 14:50:50
6050阅读
概述在密码学里面一共有3中分类:1.对称加密/解密对称加密比较常见的有DES/AES。加密方和解密方都持有相同的密钥。对称的意思就是加密和解密都是用相同的密钥。2.非对称加密/解密常见的加密算法DSA/RSA。如果做过Google Pay的话,应该不会陌生。非对称意味着加密和解密使用的密钥不是相同的。这种应用的场合是需要保持发起方的权威性,比如Google中一次支付行为,只能Google通过私钥来
openssl aes-128-ecb方式对密码进行md5后的加解密 openssl版本:1.0.2g 其他的自行验证 编译:gcc aes_128_ecb.c -o aes_128_ecb -lssl -lcrypto 执行结果: ./aes_128_ecb passwd: 12345 strMd ...
转载
2021-10-18 17:59:00
1558阅读
2评论
对称加密工具,了解对称加密的原理后就很简单了,原理部分见下文。openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] &
目 录 1. 背景与意义 4 2. 系统设计 5 2.1系统主要目标 5 2.2主要软件需求(运行环境) 5 2.3功能模块与系统结构 6 3 系统功能程序设计 8 3.1基本要求部分 8 3.1.1 字节替换 8 3.1.2行移位 9 3.1.3列混合 11 3.1.4密钥加 13 3.1.5密钥扩展 14 3.1.6获取RoundKey 16 3.1.7逆字节替换 17 3.1.8逆行移位 1
转载
2024-04-09 09:56:21
182阅读
通常我们写C程序时,都会直接使用这样的语句“#include <stdio.h>”。这便是我们通常说的头文件。头文件通常用作函数声明,变量声明,常数定义,宏的定义等等。头文件几个好处: 1,头文件可以定义所用的函数列表,方便查阅你可以调用的函数; 2,头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代
好习惯,先上代码再说事 加密void AesEncrypt(unsigned char* pchIn, int nInLen, unsigned char *ciphertext, int &ciphertext_len, unsigned char * pchKey)
{
EVP_CIPHER_CTX en;
EVP_CIPHER_CTX_init(&en);
c
转载
2023-09-30 12:39:07
88阅读
目录 目录什么是AESAES 的思想AES加密说明字节代替(SubBytes)行移位(ShiftRows)列混淆(MixColumns)轮密钥加(AddRoundKey)密钥扩展工作繁忙,持续更新中… 什么是AESAES:Advanced Encryption Standard,高级加密标准。 在密码学上又称:Rijndael加密法。AES 的思想区块加密标准代换—置换网络设计标准抵抗所有已知的
转载
2024-03-26 09:51:23
112阅读
C语言中要求平方根,可以在头文件中加入#include .然后调用sqrt(n);函数即可。但在单片机中调用此函数无疑会耗费大量资源和时间,是极不合适的。在此,总结下网上常见的四种单片机常用开方根算法:对于拥有专门的乘除法指令的单片机,可采用以下两种方法: 1、二分法对于一个非负数n,它的平方根不会小于大于(n/2+1)(谢谢@linzhi-cs提醒)。在[0, n
转载
2024-08-11 18:39:39
118阅读
C语言AES新手!内容代码转自AES加密算法的详细介绍与实现,我只是在此基础上做了注释,留给自己看有些代码我也没看懂,所以还请大家多多指教,带?的是我不明白的!!!注意,因为本身代码转自他人的,所以我在人家原有的基础上还做了注释,为了便于分辨,我写的注释前有一个“-”!!!比如整体 首先判断明文、密钥长度是否符合要求 然后扩展密钥【扩到44个】 第0轮 ,①明文矩阵转化为状态矩阵②轮密钥加 第1-
转载
2024-03-21 12:24:15
537阅读
OpenSSL是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库、应用程序、SSL协议库。Openssl实现了SSL协议所需要的大多数算法。下面介绍使用Openssl进行文件的对称加密操作。一、Openssl支持的加密算法有:
-aes-128-cbc -aes-128-cfb -aes-128-cfb1
-aes-128-cfb8 -aes-128-ecb -aes-128-
转载
2024-05-17 07:38:01
508阅读
目的发布版本时,使用openssl加密版本,放到服务器上产品升级版本时,下载版本包后,先使用openssl进行解密,然后升级折腾了两天终于搞定了,把一些东西记录下使用openssl源码真正需要用到的只有一个结构体和三个函数,注释如下:unsigned char key[32];//密钥字符串,最长32位
unsigned char iv[16];//向量字符串,最长16位
AES_KEY ae
转载
2024-03-19 10:15:38
140阅读
文章目录OpenSSL说明AES 128/192/256设置方式实例关于Padding额外说明 OpenSSL说明OpenSSL的加密算法库enc提供了丰富的对称加密算法,下面说明一下如何通过命令行实现加密解密:$ openssl enc -aes-256-cbc -e -K 313233343536373839303132333435363132333435363738393031323334
转载
2024-04-04 16:04:37
590阅读
纸上学来终觉浅,绝知此事要躬行。——
陆游「冬夜读书示子聿」
#题外话
的确做任何事情的确贵在坚持,最近有段时间没有更新了,请各位童鞋(特别是童鞋 偲**)多包涵~~,另外请有时间可以去多复习下C语言前面基础文章。
C语言入门基础必学(2020.4版)
# 稀疏矩阵转置简单转置:矩阵的行列值互换,另外保证转置后的三元组按照次序排
转载
2024-06-07 08:35:50
73阅读
文章目录1、AES算法流程概述2、C语言实现AES算法流程2.1 S盒和逆S盒2.2 轮常量2.3 密钥扩展2.3.1 密钥字代换函数2.3.2 密钥移位函数(字循环 函数)2.3.3 密钥扩展函数2.4 AES加密2.4.1 轮密钥加函数2.4.2 字节代换函数2.4.3 行移位函数2.4.4 列混合变换函数2.4.5 AES加密16字节数据函数2.4.6 AES加密不定长数据函数2.5 AE
转载
2024-03-21 14:21:26
418阅读
一、课程设计功能简介题目对称算法AES的实现,在深入理解AES加密/解密算法理论的基础上,设计一个AES加密/解密软件系统。功能要求编程实现算法的加密过程、解密过程和密钥生成过程完成一个明文分组的加密、解密,明文和密钥是ASCII码。进行加密后,能够进行正确的解密提供良好的用户界面,界面有有加密/解密选择、输入明文/密文栏、密钥栏、和加/解密结果显示栏二、技术要求运用所掌握的数据结构、以及编程语言
转载
2024-05-09 12:38:32
44阅读
OpenSSL API 的文档有些含糊不清。因为还没有多少关于 OpenSSL 使用的教程,所以对初学者来说,在应用程序中使用它可能会有一些困难。那么怎样才能使用 OpenSSL 实现一个基本的安全连接呢?本教程将帮助您解决这个问题。学习如何实现 OpenSSL 的困难部分在于其文档的不完全。不完全的 API 文档通常会妨碍开发人员使用该 API,而这通常意味着它注定要失败。但 OpenSSL 仍
转载
2024-05-24 20:08:43
40阅读