posts - 72, comments - 66, trackbacks - 0, articles - 0

          keystore存儲對稱密鑰

          Posted on 2008-09-02 10:42 Fingki.li 閱讀(802) 評論(0)  編輯  收藏 所屬分類: About security
          keystore是個密鑰存儲庫,我們經常用他來存儲非對稱密鑰,但有時我們也需要它來存儲一些對稱密鑰。
           public void createKeyStore() {



          try {



          KeyGenerator keyGen = KeyGenerator.getInstance("DES");







          SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");







          keyGen.init(56, random);







          SecretKey secretKey = keyGen.generateKey();







          KeyStore ks = KeyStore.getInstance("jceks");







          char password[] = {'c', 'h', 'a', 'n', 'g', 'e','i','t' };







          // Create an empty keystore



          ks.load(null, password);







          KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(secretKey);







          ks.setEntry("myKey", skEntry, new KeyStore.PasswordProtection(password));



           



          // store away the keystore



          java.io.FileOutputStream fos =



          new java.io.FileOutputStream("mystore");



          ks.store(fos, password);



          fos.close();







          } catch (NoSuchAlgorithmException nsaex) {



          nsaex.printStackTrace(System.err);



          } catch (NoSuchProviderException nspex) {



          nspex.printStackTrace(System.err);



          } catch (KeyStoreException ksex) {



          ksex.printStackTrace(System.err);



          } catch (CertificateException cex) {



          cex.printStackTrace(System.err);



          } catch (IOException ioex) {



          ioex.printStackTrace(System.err);



          }



          }







          上面的例子是存一個DES密鑰。



          需要注意的就是這個keystore的類型,必須是jceks,



          之前我就是使用默認的jks,導致報錯。





          主站蜘蛛池模板: 偏关县| 浦北县| 西宁市| 耒阳市| 乐至县| 黄骅市| 水富县| 寻乌县| 兴安县| 丹凤县| 丰原市| 手机| 绥芬河市| 汉寿县| 濮阳市| 镇雄县| 丰宁| 雷山县| 旺苍县| 灵山县| 枞阳县| 乌拉特中旗| 宁南县| 息烽县| 鸡西市| 中宁县| 渝北区| 乌拉特中旗| 永胜县| 进贤县| 阳泉市| 柳州市| 军事| 宜兴市| 镇远县| 白银市| 郓城县| 安仁县| 岳阳市| 万山特区| 加查县|