<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    通過我昨天的文章大家應該已經清楚了,用Java寫信息安全方面的程序需要做的準備工作.好了,現在假設你已經是一個對Java語言本身比較熟悉,能夠用Java寫一些程序的人,并且這些該下載的jar包已經下載好了,可以正式開工了.

        在所有的此類程序的開頭(無論是在類的構造函數中也好,在初始化函數中也好),都要先來上這么一句:Security.addProvider(new BouncyCastleProvider());將BouncyCaslte的Provider添加到系統中,這樣以后系統在運行相關程序的時候調用的 就是這個Provider中的加密算法.

        然后我們就可以開始開CA了.首先,作為一個CA要有自己的一對公鑰和私鑰,我們先要生成這么一對.使用KeyPairGenerator對象就可以了, 調用KeyPairGenerator.getInstance方法可以根據要生成的密鑰類型來產生一個合適的實例,例如常用的RSA,DSA等.然后調 用該對象的initialize方法和generateKeyPair方法就可以產生一個KeyPair對象了.然后調用KeyPair對象中的相應方法 就可以獲取生成的密鑰對中的公鑰和私鑰了.

        有了公鑰和私鑰對以后,下面的一個很現實問題就是如何把它們儲存起來.通常我們要對這些安全對象,如公鑰,私鑰,證書等先進行編碼.編碼的目的是為了把結 構復雜的安全對象變成字節流以便存儲和讀取,如DER編碼.另外,通常還把DER編碼后的字節流再次進行base64編碼,以便使字節流中所有的字節都變 成可打印的字節.

        在Java語言中,這些安全對象基本上都有getEncoded()方法.例如:

        byte[] keyBytes = privateKey.getEncoded();

        這樣就把一個私鑰進行了DER編碼后的結果保存到一個byte數組中了.然后就可以把這個byte數組保存到任何介質中.如果有必要的話,可以使用BC Provider中的Base64編碼解碼器類進行編碼,就像這樣:

        byte data[] = Base64.encode(keyBytes);

        要從文件中讀取私鑰則應該這樣:

        PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyData);
        KeyFactory kfac = KeyFactory.getInstance("RSA");
        privateKey = kfac.generatePrivate(spec);

        這里說明一下,對RSA私鑰進行編碼就會自動地按照PKCS8進行.因此讀取的時候將包含編碼的字節數組作為PKCS8EncodedKeySpec對象 的構造函數的參數就可以生成一個該類型的對象.然后創建一個密鑰工廠對象就可以按照要求生成一個RSA私鑰了.很顯然這里的keyData應該是和上面的 keyBytes內容相同.

        為了提高系統的安全性,通常私鑰在經過DER編碼后,還會使用一個口令進行加密,然后再儲存在文件系統中.在使用私鑰的時候,如果沒有正確的口令,是無法把私鑰還原出來的.

        保存證書和保存私鑰類似.Certificate對象中也有一個getEncoded的方法.

        這次就講這些.大家應該可以把這些安全對象很熟練地從文件系統和內存之間來回地折騰了吧.這對以后實現CA是很重要的.下次我會講一下證書中表示主體的方法:DN.
    posted on 2008-02-13 22:11 禮物 閱讀(2356) 評論(0)  編輯  收藏 所屬分類: CA
    主站蜘蛛池模板: 国产一区二区三区亚洲综合| 亚洲国产精品免费视频| 亚洲综合AV在线在线播放| 久久免费视频网站| 亚洲精品天堂在线观看| 亚洲精品无码专区2| 最近免费中文字幕高清大全 | 中国国产高清免费av片| 久久久久亚洲精品日久生情| 热99re久久精品精品免费| 国产在线播放线91免费| 亚洲日韩看片无码电影| 亚洲精品无码AV人在线播放| 免费无码A片一区二三区| 两个人日本WWW免费版| 亚洲AV日韩综合一区尤物| 亚洲精品无码不卡在线播放HE| 成人性生交大片免费看无遮挡| 成人a毛片视频免费看| 亚洲一区二区久久| 色噜噜AV亚洲色一区二区| 成人免费毛片内射美女APP| 热久久这里是精品6免费观看| 亚洲日韩久久综合中文字幕| 亚洲第一中文字幕| 亚洲熟女乱综合一区二区| 毛片免费在线观看网站| 99久久99热精品免费观看国产| 日韩成人毛片高清视频免费看| 亚洲娇小性xxxx| 亚洲成人中文字幕| 亚洲AV无码一区二区三区国产| 夜夜爽免费888视频| 亚洲美女免费视频| 国产日韩一区二区三免费高清| 处破女第一次亚洲18分钟| 国产亚洲sss在线播放| 99久久亚洲综合精品成人网| 中文字幕亚洲专区| 国产免费观看a大片的网站| 四虎最新永久免费视频|