漫谈Java加密技术(一)Java认证考试

文章作者 100test 发表时间 2009:07:16 20:03:41
来源 100Test.Com百考试题网


  除了DES,我们还知道有DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法——PBE
  PBE
  PBE——Password-based encryption(基于密码加密)。其特点在于口令由用户自己掌管,不借助任何物理媒体;采用随机数(这里我们叫做盐)杂凑多重加密等方法保证数据的安全性。是一种简便的加密方式。
  通过java代码实现如下:
  import java.security.Key.
  import java.util.Random.
  import javax.crypto.Cipher.
  import javax.crypto.SecretKey.
  import javax.crypto.SecretKeyFactory.
  import javax.crypto.spec.PBEKeySpec.
  import javax.crypto.spec.PBEParameterSpec.
  /** *//**
  * PBE安全编码组件
  *
  */
  public abstract class PBECoder extends Coder {
  /** *//**
  * 支持以下任意一种算法
  *
  * <.pre>.
  * PBEWithMD5AndDES
  * PBEWithMD5AndTripleDES
  * PBEWithSHA1AndDESede
  * PBEWithSHA1AndRC2_40
  * <./pre>.
  */
  public static final String ALGORITHM = "PBEWITHMD5andDES".
  /** *//**
  * 盐初始化
  *
  * @return
  * @throws Exception
  */
  public static byte[] initSalt() throws Exception {
  byte[] salt = new byte[8].
  Random random = new Random().
  random.nextBytes(salt).
  return salt.
  }
  /** *//**
  * 转换密钥<.br>.
  *
  * @param password
  * @return
  * @throws Exception
  */
  private static Key toKey(String password) throws Exception {
  PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray()).
  SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM).
  SecretKey secretKey = keyFactory.generateSecret(keySpec).
  return secretKey.
  }
  /** *//**
  * 加密
  *
  * @param data
  * 数据
  * @param password
  * 密码
  * @param salt
  * 盐
  * @return
  * @throws Exception
  */

相关文章


为何选择JSF不选StrutsJava认证考试
谈谈Java加密技术(四)Java认证考试
漫谈Java加密技术(三)Java认证考试
漫谈Java加密技术(二)Java认证考试
漫谈Java加密技术(一)Java认证考试
在String中==和equals的区别Java认证考试
Java高手必会的要点Java认证考试
根据J2ME虚拟机对程序编写的优化方式Java认证考试
J2ME实践:减少图片以减小JAR文件大小Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛