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

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

  生成密钥:

  Listing D 展示了如果初时化密钥生成器来生成密钥;   Listing D: DESKeyGenerator.java
  import javax.crypto.KeyGenerator;
  import java.security.Key;
  import java.security.NoSuchAlgorithmException;
  import java.security.Security;
  public class DESKeyGenerator {
  public static void main(String[] args) {
  Security.addProvider(new com.sun.crypto.provider.SunJCE());
  try {
  KeyGenerator kg = KeyGenerator.getInstance("DES");
  Key key = kg.generateKey();
  System.out.println("Key format: " + key.getFormat());
  System.out.println("Key algorithm: " + key.getAlgorithm());
  }
  catch (NoSuchAlgorithmException e) {
  e.printStackTrace();
  }
  }
  }

  为了生成密钥,我们首先要初始化密钥生成器,这一步可以通过调用KeyGenerator类的静态方法getInstance来实现。我们所用的vanilla DES算法没有模式和填充模型。

  你同样可以(在getInstance(""))传入DES/ECB/PKCS5Padding来指明模式(ECB)和填充模式(PKCS5Padding);也可以传入另外一个参数指明所用的提供者,不过这是可选的;

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

  一旦我们有了特定的密钥生成对象,我们就可以用他得到密钥:

  Key key = kg.generateKey();

  生成密码:

  生成密码的过程跟生成密钥类似,需要调用Cipher类的getInstance方法,参数要跟生成密钥时用的参数保持一致;

  Cipher cipher = Cipher.getInstance(“DES”);

 

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐