用openssl实现aes加密

您所在的位置:网站首页 openssl实现软件授权 用openssl实现aes加密

用openssl实现aes加密

2024-06-28 14:01:29| 来源: 网络整理| 查看: 265

实验步骤:

一,下载并安装gcc,openssl,(OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 )

yum -y install gcc

wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz

解压openssl

tar zxf openssl-1.0.2h.tar.gz

二,把openssl移动到 /usr/local目录下

mv openssl /usr/local

三,在/usr/local、openssl目录下创建一个文件 enc_dec.c用来存储算法程序

四,把所需要的规则写到makefile文件中

LIB=-L/usr/local/lib -lcrypto

all:${OBJ}

cc ${OBJ}-o app.exe ${LIB}

${OBJ}:enc_dec.c

cc -c enc_dec.c -o ${OBJ}

.PHONY:clean

clean:

rm ${OBJ}

~

五,编译算法程序: cc enc_dec.c -o app.exe -L/usr/local/lib -lcrypto没有报错,然后用make检验也没有报错。

六,执行./app.exe文件

程序代码:

#include

#include

#include

#include

#include

#include

#include

void HexCode(unsigned char* data, int len)

{

int i = 0;

for(; i < len; i++)

printf("%02x", (unsigned int)data[i]);

printf("\n");

}

int main()

{

const int len = 3;

char userkey[AES_BLOCK_SIZE];

unsigned char *data = malloc(AES_BLOCK_SIZE*len);

unsigned char *cipher = malloc(AES_BLOCK_SIZE*len);

unsigned char *plain = malloc(AES_BLOCK_SIZE*len);

 

int i;

AES_KEY key;

memset((void*)userkey, 0, AES_BLOCK_SIZE);

memset((void*)data, 0, AES_BLOCK_SIZE*len);

memset((void*)cipher, 0, AES_BLOCK_SIZE*len);

memset((void*)plain, 0, AES_BLOCK_SIZE*len);

strcpy(userkey, "userkey");

strcpy(data, "original text");

printf("original text:\n");

HexCode(data, AES_BLOCK_SIZE*len);

 

AES_set_encrypt_key(userkey, 128, &key);

for(i = 0; i < len; i++)

AES_ecb_encrypt(data+i*AES_BLOCK_SIZE, cipher+i*AES_BLOCK_SIZE, &key, AES_ENCRYPT);

 

printf("cipher:\n");

HexCode(cipher, AES_BLOCK_SIZE*len);

AES_set_decrypt_key(userkey, 128, &key);

for(i = 0; i < len; i++)

AES_ecb_encrypt(cipher+i*AES_BLOCK_SIZE, plain+i*AES_BLOCK_SIZE, &key, AES_DECRYPT);

printf("plain:\n");

HexCode(plain, AES_BLOCK_SIZE*len);

 

free(data);

free(cipher);

free(plain);

return 0;

}

实现结果:

疑难小结:一开始输入 cc enc_dec.c -o app.exe -L/usr/local/lib -lcrypto的时候出现如下错误

原因是:需要和OpenSSL链接的文件(库和头文件)在你Linux平台上缺少

解决办法:centos用命令$ sudo yum install openssl-devel

ubuntu用$ sudo apt-get install libssl-dev.



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭