高考,再见不复遇见
作者:黎跃春
孔壹学院创始人兼CEO
黎跃春:孔壹学院创始人兼CEO,国内区块链布道先行者,通信和信息技术培养工程区块链高级授课专家。如果您有任何关于区块链的问题,可以加入区块链技术交流QQ群729666975,我们会为您一一解答。
一年一度的高考终于结束了,孔壹学院希望已经考试完毕的孩子们,放下一切,好好玩耍。考试是个点,生命是条线。没有人因为考试赢得所有,也没有人因为考试输掉一生。不管考好考坏,爸妈都等你回家吃饭,你们是最棒的。
高考加油!
从零到壹学习密码学为一个系列,一共20讲,包括初识密码学、Hash 函数、对称加密算法、数字签名、椭圆曲线加解密、公钥基础设施( PKI )、零知识证明、随机数等,为大家详尽的介绍密码学的学习过程。今天我们将为大家介绍第七讲:DES、3DES 加密算法的调用。话不多说,马上开启我们的密码学学习之旅。
资料获取,添加莉莉微信kongyixueyuan。
孔壹学院
AES加密常用的概念
加密模式
ECB模式全称Electronic Codebook模式,译为电子密码本模式
CBC模式全称Cipher Block Chaining模式,译为密文分组链接模式
CFB模式全称Cipher FeedBack模式,译为密文反馈模式
OFB模式全称Output Feedback模式,译为输出反馈模式。
CTR模式全称Counter模式,译为计数器模式。
初始向量
当加密第一个明文分组时,由于不存在 “前一个密文分组”,因此需要事先准备一个长度为一个分组的比特序列来代替 “前一个密文分组”,这个比特序列称为初始化向量(InitializationVector),通常缩写为 IV。
填充方式
当明文长度不为分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。
NoPadding
API或算法本身不对数据进行处理,加密数据由加密双方约定填补算法。例如若对字符串数据进行加解密,可以补充\0或者空格,然后trim
PKCS5Padding
加密前:数据字节长度对8取余,余数为m,若m>0,则补足8-m个字节,字节数值为8-m,即差几个字节就补几个字节,字节数值即为补充的字节数,若为0则补充8个字节的8
解密后:取最后一个字节,值为m,则从数据尾部删除m个字节,剩余数据即为加密前的原文。
加密字符串为为AAA,则补位为AAA55555;加密字符串为BBBBBB,则补位为BBBBBB22;加密字符串为CCCCCCCC,则补位为CCCCCCCC88888888。
PKCS7Padding
PKCS7Padding 的填充方式和PKCS5Padding 填充方式一样。只是加密块的字节数不同。PKCS5Padding明确定义了加密块是8字节,PKCS7Padding加密快可以是1-255之间。
实现AES 加密和解密
使用CBC模式+PKCS7 填充方式实现AES的加密和解密
运行结果:
领取专属 10元无门槛券
私享最新 技术干货