了解Java密码扩展的基础(二)

日期: 2007-12-17 来源:TechTarget中国

  Listing A: ProviderInformation.java
  import java.security.Provider;
  import java.security.Security;
  import java.util.Set;
  import java.util.Iterator;
  public class ProviderInformation {
  public static void main(String[] args) {
  Provider[] providers = Security.getProviders();
  for (int i = 0; i < providers.length; i++) {
  Provider provider = providers[i];
  System.out.println(”Provider name: ” + provider.getName());
  System.out.println(”Provider information: ” + provider.getInfo());
  System.out.println(”Provider version: ” + provider.getVersion());
  Set entries = provider.entrySet();
  Iterator iterator = entries.iterator();
  while (iterator.hasNext()) {
  System.out.println(”Property entry: ” + iterator.next());
  }
  }
  }
  }
  Listing B: ProviderInformation.java output
  Provider name: SUN
  Provider information: SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS keystore)
  Provider version: 1.2
  Property entry: Alg.Alias.KeyFactory.1.2.840.10040.4.1=DSA
  Property entry: Alg.Alias.Signature.1.2.840.10040.4.3=SHA1withDSA
  Property entry: Alg.Alias.KeyPairGenerator.OID.1.2.840.10040.4.1=DSA
  Property entry: Signature.SHA1withDSA KeySize=1024
  Property entry: Signature.SHA1withDSA ImplementedIn=Software

  动态安装:Listing c 说明了如何在运行时动态加载安全提供者,要注意的是,当你用Security.addProvider(…)加载提供者时,它是对整个JVM环境都有用的; 
  Listing C: DynamicProvider.java
  import java.security.Security;
  public class DynamicProvider {
  public static void main(String[] args) {
  // This is all there is to it!
  Security.addProvider(new com.sun.crypto.provider.SunJCE());
  }
  }

  如前所述,当你安装一个提供者时,你用n来指明此提供者的优先级,但一个算法的实例被调用时,JVM将按照提供的优先级来在已经安装的提供者中查找可用的实现,并使用他首先找到的可用算法。你也可用在调研时加上附加参数来指明要在那个提供者中寻找使用的算法。

  实现细节:

  JCE API包含了大量的为实现安全特性的类和接口,首先,我们做一个DES对称加密的例子。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐