【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密原理 | 非密钥整数倍长度的数据加密处理 )
文章目錄
- 一、對(duì)稱加密原理
- 二、非密鑰整數(shù)倍長(zhǎng)度的數(shù)據(jù)加密處理
一、對(duì)稱加密原理
給定一個(gè) 密鑰 , 密鑰的 長(zhǎng)度不確定 , 可能是 323232 字節(jié) , 也可能是 646464 字節(jié) ;
將 被加密的數(shù)據(jù) 切割成 與 密鑰長(zhǎng)度 相同 的 數(shù)據(jù)塊 ;
對(duì)上述切割后的數(shù)據(jù) , 進(jìn)行 分組加密 ;
加密后的數(shù)據(jù)就組成了 密文 ;
二、非密鑰整數(shù)倍長(zhǎng)度的數(shù)據(jù)加密處理
如果數(shù)據(jù)長(zhǎng)度是 102910291029 字節(jié) , 前面的 102410241024 字節(jié)正常加密 , 后面的 555 個(gè)字節(jié) , 需要進(jìn)行特殊處理 ;
數(shù)據(jù)的長(zhǎng)度 不是 密鑰大小 的整數(shù)倍 ;
最后 555 字節(jié)處理方案 :
加密密鑰是 323232 位 , 切割后 , 最后一個(gè)數(shù)據(jù)塊是 555 字節(jié) , 不是 323232 的整數(shù)倍 ;
這里需要給后面的 數(shù)據(jù)進(jìn)行填充 , 填充的原則是 " 缺幾補(bǔ)幾 " , 該數(shù)據(jù)塊缺少 272727 個(gè)字節(jié) , 就在 555 個(gè)字節(jié)后的 272727 個(gè)字節(jié)位置 , 都賦值 272727 數(shù)值 , 也就是十六進(jìn)制的 0x1B ;
將上述數(shù)據(jù)解密 , 就會(huì)發(fā)現(xiàn)最后 272727 個(gè)字節(jié)的數(shù)據(jù)都是 0x1B , 如果發(fā)現(xiàn)如下規(guī)則 , 有 nnn 個(gè) nnn 就將后面 nnn 個(gè)字節(jié)刪除 ;
總結(jié)
以上是生活随笔為你收集整理的【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密原理 | 非密钥整数倍长度的数据加密处理 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【C 语言】文件操作 ( 文件加密解密
- 下一篇: 【C 语言】文件操作 ( 文件加密解密