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

          keystore存儲對稱密鑰

          Posted on 2008-09-02 10:42 Fingki.li 閱讀(799) 評論(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,導致報錯。





          主站蜘蛛池模板: 崇明县| 商水县| 远安县| 固始县| 乾安县| 吉安县| 泌阳县| 雅江县| 洛南县| 雷山县| 湘潭市| 尚志市| 广西| 万年县| 峡江县| 宝鸡市| 十堰市| 红桥区| 武隆县| 巴彦淖尔市| 布尔津县| 天峨县| 辽宁省| 美姑县| 富锦市| 北碚区| 宿迁市| 许昌市| 延长县| 日土县| 新龙县| 伊吾县| 安图县| 贵溪市| 涟水县| 安丘市| 锦州市| 阿勒泰市| 萨迦县| 德保县| 化德县|