注意事项

  • 使用API的时候,需要特别小心数据长度,一般没有指定长度的参数,默认都是16(AES_BLOCK_SIZE)个字节。输出数据的长度一般都是16字节的倍数,否则会出现数组越界访问。
  • 以下API中,encrypt表示加密,decrypt表示解密。

生成加密/解密的key

int AES_set_encrypt_key(const unsigned char *userKey, const int bits,AES_KEY *key);
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,AES_KEY *key);

参数说明

参数名称 描述
userKey 用户指定的密码。注意:只能是16、24、32字节。如果密码字符串长度不够,可以在字符串末尾追加一些特定的字符,或者重复密码字符串,直到满足最少的长度。
bits 密码位数。即userKey的长度 * 8,只能是128、192、256位。
key 向外输出参数。

使用AES加密解密key

void AES_encrypt(const unsigned char *in, unsigned char *out,const AES_KEY *key);
void AES_decrypt(const unsigned char *in, unsigned char *out,const AES_KEY *key);

参数说明

参数名称 描述
in 输入数据。必须是16字节。
out 输出数据。必须是16字节。
key 使用AES_set_encrypt/decrypt_key生成的Key。
  • AES_encrypt/AES_decrypt一次只处理16个字节。如果输入数据较长,你需要使用循环语句,每16个字节处理一次,直到所有数据处理完毕。如果数据不足16字节,可以用0填充至16字节。

参考链接

  • AES加解密
  • openssl中加密的用法

openssl里面AES算法主要函数的参数的介绍相关推荐

  1. 使用openssl开源AES算法,实现aes、aes-cbc和aes-ecb对字符串的加解密

    注意事项 对于用户输入的密码进行了md5运算,从而保证数据格式的统一性 内部调用的随机函数,参考我的其他博文 参考链接 头文件crypto_util.h #pragma once#include &l ...

  2. 实战篇-OpenSSL之AES加密算法-ECB模式

    本文属于<OpenSSL加密算法库使用系列教程>之一,欢迎查看其它文章. 实战篇-OpenSSL之AES加密算法-ECB模式 一.AES简介 二.ECB模式 1.命令行操作 2.函数说明 ...

  3. 实战篇-OpenSSL之AES加密算法-CFB8模式

    本文属于<OpenSSL加密算法库使用系列教程>之一,欢迎查看其它文章. 实战篇-OpenSSL之AES加密算法-CFB8模式 一.AES简介 二.CFB8模式 1.命令行操作 2.函数说 ...

  4. 实战篇-OpenSSL之AES加密算法-CFB128模式

    本文属于<OpenSSL加密算法库使用系列教程>之一,欢迎查看其它文章. 实战篇-OpenSSL之AES加密算法-CFB128模式 一.AES简介 二.CFB128模式 1.命令行操作 2 ...

  5. 实战篇-OpenSSL之AES加密算法-CFB1模式

    本文属于<OpenSSL加密算法库使用系列教程>之一,欢迎查看其它文章. 实战篇-OpenSSL之AES加密算法-CFB1模式 一.AES简介 二.CFB1模式 1.命令行操作 2.函数说 ...

  6. main函数带有参数

    main函数的参数 前面介绍的main函数都是不带参数的.因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能 ...

  7. EKLAVYA -- 利用神经网络推断二进制文件中函数的参数

    EKLAVYA – 利用神经网络推断二进制文件中函数的参数 文章目录 EKLAVYA -- 利用神经网络推断二进制文件中函数的参数 问题介绍以及形式化定义 方法设计 数据准备 实验结果 这一次介绍一篇 ...

  8. 基于国密SM3算法(openssl接口)密钥派生函数KDF的实现

    前言 最近项目需要使用KDF生成秘钥,对比国密标准(GB_T 32918.4-2016)及网络资料,发现确实没有让我满意的, 自己结合标准和大佬:Heidlyn的帖子<国密SM2算法密钥派生函数 ...

  9. 函数传参数_算法笔记(7)第二章C、C++快速入门函数,main函数,

    #includevoid change(int x){ x=x+1;}int main(){ int x=10; change(x); prinf("%d\n",x); retur ...

最新文章

  1. 再见了,公司的“烂系统”
  2. spring配置异步执行
  3. python用法查询笔记_Python学习笔记 - 2 - PyCharm的基本使用
  4. 一个切图仔的 CSS 笔记
  5. php如何导入数据,““php中如何将execl的数据导入到数据库中
  6. Leetcode--820:单词的压缩编码(java)
  7. 关于TestNg注解执行
  8. 红橙Darren视频笔记 IOC注解框架 了解xUtils3与ButterKnife的原理
  9. PHP运行模式的深入理解
  10. C++ 模板双向不循环链表!!
  11. 排序 --- 6.2 Merge Two Sorted Lists || 6.3 Merge k Sorted Lists --- 图解
  12. h5 img js 点击图片放大_jquery – HTML5 Canvas调整图像点击放大
  13. zemax操作例子_光学软件使用实例:从Zemax导入光学系统
  14. 微信公众开发 表情开发php,微信开发Emoji表情的实例教程
  15. 【数字IC验证快速入门】4、熟悉数字IC验证中常用的Linux基本操作
  16. 对于提高团队开会效率的看法
  17. 交直流调速系统matlab,MATLAB与交直流调速系统仿真.ppt
  18. 编译原理大作业-PL0语言编译器
  19. Hash 哈希 PTA 相关题目解析
  20. 关于在js中使用trim函数的一些小技巧

热门文章

  1. arcgis中的python字符串比较
  2. 【转】DICOM入门(一)——语法
  3. 【转】通过Graph 浏览器体验Microsoft Graph
  4. 【转】Dynamics CRM 365零基础入门学习(三)Dynamics 通过Web API 来调用自定义的Action(使用插件)
  5. Python3 基础学习笔记 C03【操作列表】
  6. PWN-PRACTICE-BUUCTF-20
  7. python嵩天第二版第五章_如何避免从入门到放弃——python小组学习复盘
  8. 【HDU - 6184】Counting Stars(三元环计数,二分,优化暴力,O(m*sqrt(m)),图论)
  9. 【牛客 - 370E】Rinne Loves Gift(Bellman_Ford判负环,二分,分数规划)
  10. pc服务器不同型号,服务器与PC系统软件之不同