C 语言文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密原理 | 非密钥整数倍长度的数据加密处理 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密原理 | 非密钥整数倍长度的数据加密处理 )相关的知识,希望对你有一定的参考价值。
一、对称加密原理
给定一个 密钥 , 密钥的 长度不确定 , 可能是 32 32 32 字节 , 也可能是 64 64 64 字节 ;
将 被加密的数据 切割成 与 密钥长度 相同 的 数据块 ;
对上述切割后的数据 , 进行 分组加密 ;
加密后的数据就组成了 密文 ;
二、非密钥整数倍长度的数据加密处理
如果数据长度是 1029 1029 1029 字节 , 前面的 1024 1024 1024 字节正常加密 , 后面的 5 5 5 个字节 , 需要进行特殊处理 ;
数据的长度 不是 密钥大小 的整数倍 ;
最后 5 5 5 字节处理方案 :
加密密钥是 32 32 32 位 , 切割后 , 最后一个数据块是 5 5 5 字节 , 不是 32 32 32 的整数倍 ;
这里需要给后面的 数据进行填充 , 填充的原则是 " 缺几补几 " , 该数据块缺少
27
27
27 个字节 , 就在
5
5
5 个字节后的
27
27
27 个字节位置 , 都赋值
27
27
27 数值 , 也就是十六进制的 0x1B
;
将上述数据解密 , 就会发现最后
27
27
27 个字节的数据都是 0x1B
, 如果发现如下规则 , 有
n
n
n 个
n
n
n 就将后面
n
n
n 个字节删除 ;
以上是关于C 语言文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密原理 | 非密钥整数倍长度的数据加密处理 )的主要内容,如果未能解决你的问题,请参考以下文章
C 语言文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )
C 语言文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密 | 非对称加密 | 散列函数 )