iamhuzl

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            1 隨筆 :: 13 文章 :: 21 評論 :: 0 Trackbacks
            DES(Data Encryption Standard)算法,于1977年得到美國政府的正式許可,是一種用56位密鑰來加密64位數據的方法。一般密碼長度為8個字節,其中56位加密密鑰,每個第8位都用作奇偶校驗。

             DES的幾種工作方式

          第一種電子密本方式(ECB)
             將明文分成n個64比特分組,如果明文長度不是64比特的倍數,則在明文末尾填充適當數目的規定符號。對明文組用給定的密鑰分別進行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。

            第二種密文分組鏈接方式(CBC)
             在CBC方式下,每個明文組xi在加密前與先一組密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式報內組重的缺點,但由于明文組加密前與一組密文有關,因此前一組密文的錯誤會傳播到下一組。

            第三種密文反饋方式(CFB),可用于序列密碼
             明文X=(x0,x1,……,xn-1),其中xi由t個比特組成0   第四種輸出反饋方式(OFB),可用于序列密碼
             與CFB唯一不同的是OFB是直接取DES輸出的t個比特,而不是取密文的t個比特,其余都與CFB相同。但它取的是DES的輸出,所以它克服了CFB的密文錯誤傳播的缺點

             DES的幾種填補方式
             DES是對64位數據的加密算法,如數據位數不足64位的倍數,需要填充,補充到64位的倍數。

             NoPadding
             API或算法本身不對數據進行處理,加密數據由加密雙方約定填補算法。例如若對字符串數據進行加解密,可以補充\0或者空格,然后trim

             PKCS5Padding
             加密前:數據字節長度對8取余,余數為m,若m>0,則補足8-m個字節,字節數值為8-m,即差幾個字節就補幾個字節,字節數值即為補充的字節數,若為0則補充8個字節的8
             解密后:取最后一個字節,值為m,則從數據尾部刪除m個字節,剩余數據即為加密前的原文

             SSL3Padding
             SSL3.0協議定義的填補算法


             java默認的DES算法實現方式為DES/ECB/PKCS5Padding。若c++或其他語言與java進行加解密互通,若java采用默認實現,另一方工作方式和填補算法必須都是用ECB和PKCS5Padding。

          已有 0 人發表留言,猛擊->>這里<<-參與討論


          ITeye推薦



          posted on 2010-04-28 13:02 溫水青蛙 閱讀(2238) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 宁远县| 莎车县| 伽师县| 化德县| 永定县| 金山区| 镇远县| 邵东县| 龙里县| 密云县| 衢州市| 平武县| 荥经县| 岐山县| 若羌县| 汉阴县| 彝良县| 兴文县| 沂水县| 启东市| 山东| 德格县| 广汉市| 南丰县| 鄂伦春自治旗| 宁南县| 焦作市| 曲阳县| 施甸县| 靖宇县| 化州市| 石家庄市| 华坪县| 满城县| 汝南县| 云南省| 赤城县| 公主岭市| 崇阳县| 彭山县| 吴堡县|