<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片 | 亚洲高清视频在线| 3d成人免费动漫在线观看| 久久亚洲国产视频| 外国成人网在线观看免费视频| 亚洲成色在线综合网站| 亚洲精品夜夜夜妓女网| 国产一级一毛免费黄片| 成人黄动漫画免费网站视频| 2020久久精品亚洲热综合一本| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 久久精品国产亚洲av麻豆| 日本免费人成网ww555在线| 亚洲五月激情综合图片区| 99久久免费国产香蕉麻豆| 亚洲精品女同中文字幕| 亚洲综合亚洲综合网成人| 免费人成在线观看视频高潮| 亚洲伊人久久大香线蕉综合图片| 激情无码亚洲一区二区三区| 亚洲国产精品综合久久一线 | 国产一级在线免费观看| 91大神亚洲影视在线| 毛片免费全部免费观看| 一级特黄录像视频免费| 亚洲综合久久综合激情久久| 一个人看的www在线观看免费| 国产成人亚洲精品播放器下载 | 91免费播放人人爽人人快乐| 国产精品日本亚洲777| 亚洲成AV人片在WWW色猫咪| 国产成人免费网站| 国产黄色免费观看| 亚洲精品熟女国产| 精品女同一区二区三区免费站| 77777_亚洲午夜久久多人| 成人免费毛片视频| 成全视频高清免费观看电视剧| 亚洲av无码片区一区二区三区| 亚洲精品WWW久久久久久| 亚洲w码欧洲s码免费|