加密模式||填充模式
生活随笔
收集整理的這篇文章主要介紹了
加密模式||填充模式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html
ECB
ECB : Electronic codebook, 電子密碼本. 需要加密的消息按照塊密碼的塊大小被分為數(shù)個(gè)塊,并對(duì)每個(gè)塊進(jìn)行獨(dú)立加密
- 優(yōu)點(diǎn) : 可以并行處理數(shù)據(jù)
- 缺點(diǎn) : 同樣的原文生成同樣的密文, 不能很好的保護(hù)數(shù)據(jù)
- 同時(shí)加密,原文是一樣的,加密出來(lái)的密文也是一樣的
CBC
CBC : Cipher-block chaining, 密碼塊鏈接. 每個(gè)明文塊先與前一個(gè)密文塊進(jìn)行異或后,再進(jìn)行加密。在這種方法中,每個(gè)密文塊都依賴(lài)于它前面的所有明文塊
- 優(yōu)點(diǎn) : 同樣的原文生成的密文不一樣
- 缺點(diǎn) : 串行處理數(shù)據(jù).
填充模式?
- 當(dāng)需要按塊處理的數(shù)據(jù), 數(shù)據(jù)長(zhǎng)度不符合塊處理需求時(shí), 按照一定的方法填充滿塊長(zhǎng)的規(guī)則
NoPadding
-
不填充.
-
在DES加密算法下, 要求原文長(zhǎng)度必須是8byte的整數(shù)倍
-
在AES加密算法下, 要求原文長(zhǎng)度必須是16byte的整數(shù)倍
PKCS5Padding
-
數(shù)據(jù)塊的大小為8位, 不夠就補(bǔ)足
Tips
- 默認(rèn)情況下, 加密模式和填充模式為 : ECB/PKCS5Padding
- 如果使用CBC模式, 在初始化Cipher對(duì)象時(shí), 需要增加參數(shù), 初始化向量IV : IvParameterSpec iv = new IvParameterSpec(key.getBytes());
加密模式和填充模式
總結(jié)
以上是生活随笔為你收集整理的加密模式||填充模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AES加密解密
- 下一篇: explain 之key || expl