欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 加密解密基礎(chǔ)分類及模式歸納整理

 更新時(shí)間:2017年04月20日 15:09:04   投稿:wbb  
這篇文章主要介紹了Java加密解密基礎(chǔ)分類方法匯總的相關(guān)資料,需要的朋友可以參考下

Java  加密解密基礎(chǔ):

密碼學(xué)是研究編制密碼和破譯密碼的技術(shù)科學(xué)。研究密碼變化的客觀規(guī)律,應(yīng)用于編制密碼以保守通信秘密的,稱為編碼學(xué);應(yīng)用于破譯密碼以獲取通信情報(bào)的,稱為破譯學(xué),總稱密碼學(xué)。

密碼學(xué)常用術(shù)語(yǔ)

明文: 待加密數(shù)據(jù)。

密文: 明文經(jīng)過加密后數(shù)據(jù)。

加密: 將明文轉(zhuǎn)換為密文的過程。

加密算法: 將明文轉(zhuǎn)換為密文的轉(zhuǎn)換算法。

加密密鑰: 通過加密算法進(jìn)行加密操作的密鑰。

解密: 將密文轉(zhuǎn)換為銘文的過程。

解密算法: 將密文轉(zhuǎn)換為明文的轉(zhuǎn)換算法。

解密密鑰: 通過解密短發(fā)進(jìn)行解密操作的密鑰。

密碼學(xué)分類

1.按時(shí)間分

a.古典密碼:以字符為基本加密單元。

b.現(xiàn)代密碼:以信息塊為基本加密單元。

2按保密內(nèi)容的算法劃分

a.受限制算法:算法的保密性基于保持算法的秘密。

b.基于密鑰算法:算法的保密性基于對(duì)密鑰的保密。

3.按密鑰體制劃分

a.對(duì)稱密碼體制:也叫單鑰或私鑰密碼體制,加密過程與解密過程使用同一套密鑰。對(duì)應(yīng)的算法就是對(duì)稱加密算法,例如DES,AES。

b.非對(duì)稱密碼體制:也叫雙鑰或公鑰密碼體制,加密過程與解密過程使用不同的密鑰。對(duì)應(yīng)的算法就是非對(duì)稱加密算法,例如RSA。

4.按明文處理方式劃分

a.流密碼:也稱為序列密碼,加密時(shí)每次加密一位或者一個(gè)字節(jié)的明文。例如RC4算法。

b.分組密碼:加密時(shí)將明文分成固定長(zhǎng)度的組,用同一個(gè)密鑰和算法對(duì)每一組進(jìn)行加密輸出也是固定長(zhǎng)度的明文。當(dāng)最后一組大小不滿足指定的分組大小時(shí),

有兩種處理模式:

無填充模式,直接對(duì)剩余數(shù)據(jù)進(jìn)行加密,此組加密后大小與剩余數(shù)據(jù)有關(guān);

有填充模式,對(duì)于不滿足指定長(zhǎng)度分組的進(jìn)行數(shù)據(jù)填充;如果恰巧最后一組數(shù)據(jù)與指定分組大小相同,那么直接添加一個(gè)指定

大小的分組;填充的最后一個(gè)字節(jié)記錄了填充的字節(jié)數(shù)。

分組密碼工作模式簡(jiǎn)介

1.電子密碼本模--ECB

將明文的各個(gè)分組獨(dú)立的使用相同的密鑰進(jìn)行加密,這種方式加密時(shí)各分組的加密獨(dú)立進(jìn)行互不干涉,因而可并行進(jìn)行。同樣因?yàn)楦鞣纸M獨(dú)立加密的緣故,相同的明文分組加密之后具有相同的密文。該模式容易暴露明文分組的統(tǒng)計(jì)規(guī)律和結(jié)構(gòu)特征。不能防范替換攻擊。

其實(shí)照實(shí)現(xiàn)來看,ECB的過程只是把明文進(jìn)行分組,然后分別加密,最后串在一起的過程。當(dāng)消息長(zhǎng)度超過一個(gè)分組時(shí),不建議使用該模式。在每個(gè)分組中增加隨機(jī)位(如128位分組中96位為有效明文,32位的隨機(jī)數(shù))則可稍微提高其安全性,但這樣無疑造成了加密過程中數(shù)據(jù)的擴(kuò)張。

優(yōu)點(diǎn):

1.簡(jiǎn)單;

2.有利于并行計(jì)算;

3.誤差不會(huì)被傳送;

缺點(diǎn):

1.不能隱藏明文的模式;

2.可能對(duì)明文進(jìn)行主動(dòng)攻擊;

2.密碼分組鏈接模--CBC

需要一個(gè)初始化向量IV,第一組明文與初始化向量進(jìn)行異或運(yùn)算后再加密,以后的每組明文都與前一組的密文進(jìn)行異或運(yùn)算后再加密。IV 不需要保密,它可以明文形式與密文一起傳送。

優(yōu)點(diǎn):

1.不容易主動(dòng)攻擊,安全性好于ECB,適合傳輸長(zhǎng)度長(zhǎng)的報(bào)文,是SSL、IPSec的標(biāo)準(zhǔn)。

缺點(diǎn):

1.不利于并行計(jì)算;

2.誤差傳遞;

3.需要初始化向量IV

3.密文反饋模式--CFB

需要一個(gè)初始化向量IV ,加密后與第一個(gè)分組明文進(jìn)行異或運(yùn)算產(chǎn)生第一組密文,然后對(duì)第一組密文加密后再與第二組明文進(jìn)行異或運(yùn)算纏身第二組密文,一次類推,直到加密完畢。

優(yōu)點(diǎn):

1.隱藏了明文模式;

2.分組密碼轉(zhuǎn)化為流模式;

3.可以及時(shí)加密傳送小于分組的數(shù)據(jù);

缺點(diǎn):

1.不利于并行計(jì)算;

2.誤差傳送:一個(gè)明文單元損壞影響多個(gè)單元;

3.唯一的IV;

4. 輸出反饋模式--OFB

需要一個(gè)初始化向量IV ,加密后得到第一次加密數(shù)據(jù),此加密數(shù)據(jù)與第一個(gè)分組明文進(jìn)行異或運(yùn)算產(chǎn)生第一組密文,然后對(duì)第一次加密數(shù)據(jù)進(jìn)行第二次加密,得到第二次加密數(shù)據(jù),第二次加密數(shù)據(jù)再與第二組明文進(jìn)行異或運(yùn)算產(chǎn)生第二組密文,一次類推,直到加密完畢。

優(yōu)點(diǎn):

1.隱藏了明文模式;

2.分組密碼轉(zhuǎn)化為流模式;

3.可以及時(shí)加密傳送小于分組的數(shù)據(jù);

缺點(diǎn):

1.不利于并行計(jì)算;

2.對(duì)明文的主動(dòng)攻擊是可能的;

3.誤差傳送:一個(gè)明文單元損壞影響多個(gè)單元;

5.計(jì)數(shù)器模式--CTR

使用計(jì)數(shù)器,計(jì)數(shù)器初始值加密后與第一組明文進(jìn)行異或運(yùn)算產(chǎn)生第一組密文,
計(jì)數(shù)器增加,然后,加密后與下一組明文進(jìn)行異或運(yùn)算產(chǎn)生下一組密文,以此類推,直到加密完畢

優(yōu)點(diǎn):

1.可并行計(jì)算;

2.安全性至少與CBC 模式一樣好;

3.加密與解僅涉及密碼算法的加密;

缺點(diǎn):

1.沒有錯(cuò)誤傳播,不易確保數(shù)據(jù)完整性;

分組密碼填充方式簡(jiǎn)介

PKCS5 :填充字符串由一個(gè)值為5的字節(jié)序列組成,每個(gè)字節(jié)填充該字節(jié)序列的長(zhǎng)度。明確定義Block的大小是8位

PKCS7 :填充字符串由一個(gè)值為7的字節(jié)序列組成,每個(gè)字節(jié)填充該字節(jié)序列的長(zhǎng)度。對(duì)于塊的大小是不確定的,可以在1-255之間

ISO10126:填充字符串由一個(gè)字節(jié)序列組成,此字節(jié)序列的最后一個(gè)字節(jié)填充字節(jié)序列的長(zhǎng)度,其余字節(jié)填充隨機(jī)數(shù)據(jù)。

希望本篇文章對(duì)您有所幫助

相關(guān)文章

  • java.lang.UnsupportedClassVersionError異常正確解決方法

    java.lang.UnsupportedClassVersionError異常正確解決方法

    java.lang.UnsupportedClassVersionError異常通常發(fā)生在嘗試在較低版本的Java虛擬機(jī)上運(yùn)行使用更高版本的Jav 編譯器編譯的類文件時(shí),下面就來介紹一下解決方法,感興趣的可以了解一下
    2024-05-05
  • Java獲取當(dāng)前系統(tǒng)事件System.currentTimeMillis()方法

    Java獲取當(dāng)前系統(tǒng)事件System.currentTimeMillis()方法

    下面小編就為大家?guī)硪黄狫ava獲取當(dāng)前系統(tǒng)事件System.currentTimeMillis()方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 使用Java填充Word模板的方法詳解

    使用Java填充Word模板的方法詳解

    Java填充Word模板是一種將動(dòng)態(tài)數(shù)據(jù)插入到Word文檔模板中生成最終文檔的過程,通常用于批量創(chuàng)建包含個(gè)人信息、報(bào)告結(jié)果或其他動(dòng)態(tài)內(nèi)容的文檔,本文給大家介紹了使用Java填充Word模板的方法,需要的朋友可以參考下
    2024-07-07
  • java創(chuàng)建線程池的7種實(shí)現(xiàn)方法

    java創(chuàng)建線程池的7種實(shí)現(xiàn)方法

    在Java中線程池是一種管理線程的機(jī)制,它可以創(chuàng)建一組線程并重復(fù)使用它們,避免了創(chuàng)建和銷毀線程的開銷,這篇文章主要給大家介紹了關(guān)于java創(chuàng)建線程池的7種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2023-10-10
  • 基于Spring?Cache實(shí)現(xiàn)Caffeine+Redis二級(jí)緩存

    基于Spring?Cache實(shí)現(xiàn)Caffeine+Redis二級(jí)緩存

    本文主要介紹了基于Spring?Cache實(shí)現(xiàn)Caffeine+Redis二級(jí)緩存,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級(jí)數(shù)據(jù)

    SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級(jí)數(shù)據(jù)

    在處理大量數(shù)據(jù)時(shí),為了提高效率和性能,通常需要采用批量插入的方式,本文主要介紹了SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級(jí)數(shù)據(jù),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • java Mail郵件接收工具類

    java Mail郵件接收工具類

    這篇文章主要介紹了java Mail郵件接收工具類,本文直接給出類實(shí)現(xiàn)代碼和使用示例,需要的朋友可以參考下
    2015-02-02
  • SpringBoot中事務(wù)失效的六個(gè)原因解析

    SpringBoot中事務(wù)失效的六個(gè)原因解析

    這篇文章主要介紹了SpringBoot中事務(wù)失效的六個(gè)原因解析,由于Spring的事務(wù)是基于AOP的方式結(jié)合動(dòng)態(tài)代理來實(shí)現(xiàn)的,因此事務(wù)方法一定要是public的,這樣才能便于被Spring做事務(wù)的代理和增強(qiáng),需要的朋友可以參考下
    2023-10-10
  • Java中List集合按指定條件排序

    Java中List集合按指定條件排序

    這篇文章主要介紹了Java中List集合按指定條件排序,List是一種有序集合,可以隨時(shí)添加和刪除其中元素,本篇文章針對(duì)List集合按照條件排序的幾種方式做了實(shí)例演示,需要的朋友可以參考下
    2023-07-07
  • java代碼實(shí)現(xiàn)雙向鏈表

    java代碼實(shí)現(xiàn)雙向鏈表

    這篇文章主要為大家詳細(xì)介紹了java代碼實(shí)現(xiàn)雙向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評(píng)論