问题描述
publicstaticStringencrypt(Stringstr,StringencryptionKey)throwsException{Keykey=null;Ciphercipher=null;//GenerateaDESKEYKeyGeneratorgenerator=KeyGenerator.getInstance("DES");//为来自指定提供程序的指定密钥算法生成一个//KeyGenerator//对象SecureRandomsrn=SecureRandom.getInstance("SHA1PRNG","SUN");//系统将确定在所请求的包中是否有算法实现;如果没有,则抛出异常。srn.setSeed(encryptionKey.getBytes());//重新提供此随机对象的种子。generator.init(srn);//初始化此密钥生成器。key=generator.generateKey();//生成一个密钥byte[]iv=newbyte[8];srn.nextBytes(iv);//重新提供此随机对象的种子IvParameterSpecparams=newIvParameterSpec(iv,0,8);//使用iv中始于且包含0//的前8个字节作为IV//来构造一个//IvParameterSpec//对象。//GeneratesaCipherobjectthatimplementsDEStransformationcipher=Cipher.getInstance("DES/OFB16/NoPadding");//生成一个实现指定转换的Cipher//对象。cipher.init(Cipher.ENCRYPT_MODE,key,params);//用密钥和一组算法参数初始化此cipherbyte[]stringBytes=str.getBytes();byte[]raw=cipher.doFinal(stringBytes);//按单部分操作加密或解密数据,或者结束一个多部分操作BASE64Encoderencoder=newBASE64Encoder();returnnewString(encoder.encode(raw));}