最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

密碼學常用術(shù)語

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

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

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

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

加密密鑰: 通過加密算法進行加密操作的密鑰。

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

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

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

密碼學分類

1.按時間分

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

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

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

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

b.基于密鑰算法:算法的保密性基于對密鑰的保密。

3.按密鑰體制劃分

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

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

4.按明文處理方式劃分

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

b.分組密碼:加密時將明文分成固定長度的組,用同一個密鑰和算法對每一組進行加密輸出也是固定長度的明文。當最后一組大小不滿足指定的分組大小時,

有兩種處理模式:

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

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

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

分組密碼工作模式簡介

1.電子密碼本模--ECB

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

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

優(yōu)點:

1.簡單;

2.有利于并行計算;

3.誤差不會被傳送;

缺點:

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

2.可能對明文進行主動攻擊;

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

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

優(yōu)點:

1.不容易主動攻擊,安全性好于ECB,適合傳輸長度長的報文,是SSL、IPSec的標準。

缺點:

1.不利于并行計算;

2.誤差傳遞;

3.需要初始化向量IV

3.密文反饋模式--CFB

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

優(yōu)點:

1.隱藏了明文模式;

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

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

缺點:

1.不利于并行計算;

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

3.唯一的IV;

4. 輸出反饋模式--OFB

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

優(yōu)點:

1.隱藏了明文模式;

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

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

缺點:

1.不利于并行計算;

2.對明文的主動攻擊是可能的;

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

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

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

優(yōu)點:

1.可并行計算;

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

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

缺點:

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

分組密碼填充方式簡介

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

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

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

希望本篇文章對您有所幫助

相關(guān)文章

  • SpringBoot任意版本集成Swagger各種版本的操作指南

    SpringBoot任意版本集成Swagger各種版本的操作指南

    在學習Swagger生成API文檔的時候經(jīng)常會遇到問題,而目前市面上大部分技術(shù)分享者的SpringBoot版本并沒和我們的同步,導(dǎo)致一些一模一樣的代碼,在我們的項目上卻無法使用,這是一個經(jīng)常性的問題,本文章就旨在和大家搞定SpringBoot任意版本集成Swagger各種版本
    2024-07-07
  • java實現(xiàn)面板之間切換功能

    java實現(xiàn)面板之間切換功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)面板之間切換功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java?String類和StringBuffer類的區(qū)別介紹

    Java?String類和StringBuffer類的區(qū)別介紹

    這篇文章主要介紹了Java?String類和StringBuffer類的區(qū)別,?關(guān)于java的字符串處理我們一般使用String類和StringBuffer類有什么不同呢,下面我們一起來看看詳細介紹吧
    2022-03-03
  • Spring Cloud Feign實現(xiàn)文件上傳下載的示例代碼

    Spring Cloud Feign實現(xiàn)文件上傳下載的示例代碼

    Feign框架對于文件上傳消息體格式并沒有做原生支持,需要集成模塊feign-form來實現(xiàn),本文就詳細的介紹一下如何使用,感興趣的可以了解一下
    2022-02-02
  • Java的位圖和布隆過濾器深入詳細講解

    Java的位圖和布隆過濾器深入詳細講解

    這篇文章主要介紹了Java的位圖和布隆過濾器,在學習之前的數(shù)據(jù)結(jié)構(gòu)的時候,我們使用的數(shù)據(jù)量都不是很大,但是在生活中,我們常常面臨著要處理大量數(shù)據(jù)結(jié)果并得出最終結(jié)果,那么有沒有什么數(shù)據(jù)結(jié)構(gòu)可以幫助我們實現(xiàn)這樣的功能呢,想要繼續(xù)了解的朋友可以參考下
    2024-10-10
  • Java獲取當前時間的時間戳方法總結(jié)

    Java獲取當前時間的時間戳方法總結(jié)

    Java中獲取時間戳的方式有很多種,下面這篇文章主要給大家介紹了關(guān)于Java獲取當前時間的時間戳的相關(guān)資料,文中通過代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-06-06
  • java音樂播放器實現(xiàn)代碼

    java音樂播放器實現(xiàn)代碼

    這篇文章主要介紹了java音樂播放器的實現(xiàn)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • MyBatis使用動態(tài)SQL標簽的小陷阱

    MyBatis使用動態(tài)SQL標簽的小陷阱

    MyBatis是一個支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架,MyBatis越來越受大家的喜愛了。下面給大家分享MyBatis使用動態(tài)SQL標簽的小陷阱,感興趣的朋友一起看看吧
    2016-10-10
  • JavaMail入門教程之發(fā)送郵件(3)

    JavaMail入門教程之發(fā)送郵件(3)

    這篇文章主要為大家詳細介紹了JavaMail入門教程之發(fā)送郵件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 使用Spark?SQL實現(xiàn)讀取不帶表頭的txt文件

    使用Spark?SQL實現(xiàn)讀取不帶表頭的txt文件

    這篇文章主要為大家詳細介紹了如何使用Spark?SQL實現(xiàn)讀取不帶表頭的txt文件,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03

最新評論

岫岩| 韩城市| 天长市| 宁武县| 隆子县| 富民县| 淮安市| 海伦市| 黑龙江省| 萝北县| 凌源市| 江都市| 如皋市| 杭锦后旗| 长海县| 宜兰市| 鄂伦春自治旗| 大安市| 木里| 芷江| 遂平县| 图们市| 和田县| 吐鲁番市| 安多县| 成都市| 平阴县| 岫岩| 揭西县| 西昌市| 襄汾县| 灵川县| 宣城市| 康定县| 岳普湖县| 济南市| 江津市| 新河县| 镇雄县| 文水县| 隆子县|