iamhuzl

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

             DES的幾種工作方式

          第一種電子密本方式(ECB)
             將明文分成n個64比特分組,如果明文長度不是64比特的倍數(shù),則在明文末尾填充適當數(shù)目的規(guī)定符號。對明文組用給定的密鑰分別進行加密,行密文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位數(shù)據的加密算法,如數(shù)據位數(shù)不足64位的倍數(shù),需要填充,補充到64位的倍數(shù)。

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

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

             SSL3Padding
             SSL3.0協(xié)議定義的填補算法


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

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


          ITeye推薦



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

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


          網站導航:
           
          主站蜘蛛池模板: 宜都市| 临潭县| 张北县| 汾阳市| 鲁甸县| 嘉荫县| 黑水县| 宝坻区| 嘉定区| 颍上县| 井研县| 十堰市| 年辖:市辖区| 蕲春县| 汝州市| 会同县| 资溪县| 凭祥市| 丰城市| 南开区| 邯郸县| 天津市| 来凤县| 建德市| 施甸县| 尤溪县| 太谷县| 栾川县| 搜索| 岗巴县| 凉城县| 淮阳县| 阿坝县| 彰化县| 溧水县| 密山市| 十堰市| 丰城市| 南丰县| 文成县| 长兴县|