AES128-CBC
aes-128 cbc模式算法源码分析
使用的结构体
31 struct aes_key_st {32 # ifdef AES_LONG33 unsigned long rd_key[4 * (AES_MAXNR + 1)];34 # else35 unsigned int rd_key[4 * (AES_MAXNR + 1)];36 # endif37 int rounds;38 }; 39 typedef struct aes_key_st AES_KEY;
函数分析
int AES_set_encrypt_key(const unsigned char *userKey, const int bits, 634 AES_KEY *key)加密生成key,主要使用userKey来填充key的值int AES_set_decrypt_key(const unsigned char *userKey, const int bits,46 AES_KEY *key);
解密生成key,第一步首先userKey来填充key的值,然后对key进行加工注意:加密和解密生成key的过程使用userKey必须保持一致,且userKey数组必须大于bits位
void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,56 size_t length, const AES_KEY *key,57 unsigned char *ivec, const int enc);传进iv会变覆盖掉,这一点一定注意
算法思想:1 把明文划分128bits大小块 (block)2 iv 和 block进行异或3 使用key对 (iv ^ block) 处理,生成密文4 移位,直到全部处理完。
密文长度:明文长度%128bits == 0 ,明文长度 == 密文长度明文长度%128bits != 0 ,明文长度 + 16 == 密文长度
AES128-CBC相关推荐
- 简单记录Java的AES128加密和解密
前言 1998年NIST开始AES第一轮分析.测试和征集,共产生了15个候选算法.1999年3月完成了第二轮AES2的分析.测试.2000年10月2日美国政府正式宣布选中比利时密码学家Joan D ...
- 对称加密----AES和DES加密、解密
目前主流的加密方式有:(对称加密)AES.DES (非对称加密)RSA.DSA 调用AES/DES加密算法包最精要的就是下面两句话: Cipher cipher = Cipher.get ...
- 差分能量分析介绍(一)
一.背景 由于涉及多个系统层的攻击难以预测和建模,因此安全漏洞通常是由组件和层之间的意外交互造成的.如果算法设计者.软件开发人员和硬件工程师不合作,不了解彼此的工作,在系统的一个层中进行的安全性假设可 ...
- openSSL命令、PKI、CA、SSL证书原理
相关学习资料 http://baike.baidu.com/view/7615.htm?fr=aladdin http://www.ibm.com/developerworks/cn/security ...
- 构建DRM系统的重要基石——EME、CDM、AES、CENC和密钥
▼扫描下图二维码了解音视频技术大会更多信息▼ 翻译.编辑:Alex 技术审校:刘姗.周亚桥 本文来自OTTVerse,作者为Krishna Rao Vijayanagar. Easy-Tech#016 ...
- 数据传输优化篇之:scp 或 rsync+ssh 参数优化
目前很多应用场景中,出于各种考虑,使用了 scp 或者 rsync+ssh 的方式进行数据传输.但是一直都使用缺省选项,很少进行优化.我在内部数据同步时,也长期使用了缺省选项,后来碰到几百G到几个T ...
- 你应该知道的数仓安全
摘要:防止数据泄露可以有两种技术路径.一是权限管理,采用最小化授权原则对使用数据的用户和应用程序授权.另一种是数据加密,包括使用SQL函数加密和透明加密. 本文分享自华为云社区<[安全无小事]你 ...
- aesmiyao php_php写的AES加密解密类分享
/** * php AES加解密类 * 如果要与java共用,则密钥长度应该为16位长度 * 因为java只支持128位加密,所以php也用128位加密,可以与java互转. * 同时AES的标准也是 ...
- 使用 openssl 生成证书
一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现. 官网:https://www.opens ...
- openssl命令查看证书有效期_使用 openssl 生成证书
一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备的工具套件,用以支持SSL/TLS 协议的实现. 官网:https://www.opens ...
最新文章
- DDM实践:数据库秒级平滑扩容方案
- 我的FizzBuzz和一点感想
- HDOJ 1098 Ignatius's puzzle
- docker kali安装mysql_Linux环境使用Docker安装MySql
- VB中字符串匹配的多种方式
- fastjson php,Fastjson 对象或数组转JSON
- centos安装python3_CentOS安装Python3-阿里云开发者社区
- 挑战程序设计竞赛(第2版)
- Vue 安装@vue/cli报错npmERR gyp ERR
- 基于5g的交通运输_一种基于5G的智慧交通基础服务平台
- 学大数据需要具备什么基础和知识点?
- 7-4 工作分配问题分数 20作者 陈晓梅单位 广东外语外贸大学
- 【评分卡开发】信用评分模型构建流程
- smartforms设备类型CNSAPWIN不支持页格式ZXXX
- matlab在电力电子的应用,MATLAB在电力电子技术中的应用
- 没有独立显卡没有NVIDIA 如何安装pytorch
- P3580 [POI2014]ZAL-Freight(单调队列dp)
- 国外ATG网络进展及余割平方波束ATG地面天线设计
- 硅谷领军行动:两大诺贝尔得主同时空降,黑石摩根解密晋级风控,斯坦福专家点睛区块链全图谱...
- 牛客练习赛 43 F Tachibana Kanade Loves Game 容斥原理(Java版ac)
热门文章
- Photoshop脚本入门(二)- JavaScript脚本参考
- pandas学习笔记------set_index()
- 各端口抓肉鸡的几种方法
- 前端中的scrollHeight 、scrollTop、clientHeight等意思
- 2012年奥巴马胜选演说
- Android(安卓)订餐APP(Sqlite数据库,完整的增删改查)
- 计算机网络技术知识点大全,最新计算机网络技术与应用知识点大全
- JVM:方法调用之动态类型语言支持。
- 曙光服务器制作raid文档,曙光服务器制作RAID.docx
- HTA程序:VBS/JS脚本GUI