当前位置: 代码迷 >> J2SE >> 关于加密(为啥同样的明文加密之后密文会不一样)
  详细解决方案

关于加密(为啥同样的明文加密之后密文会不一样)

热度:7249   发布时间:2013-02-25 00:00:00.0
关于加密(为什么同样的明文加密之后密文会不一样)
Java code
public static void main(String[] args) throws Exception {        String key = "test";        String src = "111";                SecretKey deskey = null;                String Algorithm = "DESede"; // 加密算法        KeyGenerator gen = KeyGenerator.getInstance(Algorithm);   //实例化(对称加密)密钥生成器                //或用做"IBMSecureRandom",提供强加密随机数生成器        SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");                  secureRandom.setSeed(key.getBytes());// 重新设置此随机对象的种子。                deskey =  gen.generateKey();  //生成 密钥                gen = null;//将密钥生成器置空,gc回收        System.out.println("密钥:" + deskey.toString());        //============================================= 生成密钥                //实例化(为加密和解密提供密码功能)        Cipher c1 = Cipher.getInstance(Algorithm + "/ECB/PKCS5Padding");                  c1.init(Cipher.ENCRYPT_MODE, deskey);   //设置加密模式                byte[] encoded = c1.doFinal(src.getBytes("UTF-8"));   //执行加密        //import org.bouncycastle.util.encoders.Base64;        String destCode = new String(Base64.encode(encoded));   //Base64编码 密文        //============================================= 生成密文                System.out.println("密文:"+destCode.toString());            }


------解决方案--------------------------------------------------------
每次运行key都不一样,加密结果当然不一样
------解决方案--------------------------------------------------------
唉。。每次的加密key都不一样,结果能一样么。
  相关解决方案