!!!!!!!!!!求DES 算法加解密数据 JAVA版 拜求!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.java2s.com/Code/JavaDownload/DESCrypterandDecrypter.zip DES算法加、解密(originalFile为原文件,encrtpy为加密后的文件,decrtpy为解密的文件)DES算法的密钥内容不是由用户提供的,是随机产生的这样每次加密后的文件都不相同public class DESkey { public DESkey() {//加密 try { FileInputStream fileIn = new FileInputStream(originalFile);//此类提供(对称)密钥生成器的功能(生成一个DES算法的密钥) KeyGenerator keygen = KeyGenerator.getInstance("DES"); //这里是重点:生成一个密钥--deskey SecretKey deskey = keygen.generateKey(); //定义一个DES加密算法 Cipher cipher = Cipher.getInstance("DES")//由于DES算法的密钥是随机的,要解密,就要获得这个密钥 FileOutputStream writeFilekey = new FileOutputStream(fileKey); //在这里已字节码形式保存这个密钥,使之能在解密时使用 writeFilekey.write(deskey.getEncoded()); //定义DES算法的状态(加密),和使用的密钥 cipher.init(Cipher.ENCRYPT_MODE, deskey); byte[] cipherByte = new byte[(int) originalFile.length()]; fileIn.read(cipherByte); //对读入的文件加密 cipherByte = cipher.doFinal(cipherByte); FileOutputStream fileout = new FileOutputStream(encryptFile); fileout.write(cipherByte); fileIn.close(); writeFilekey.close(); fileout.close();//解密 FileInputStream fileIn2 = new FileInputStream(encryptFile); FileInputStream readkey = new FileInputStream(fileKey); byte[] rawKeyData = new byte[(int) fileKey.length()]; //获得原DES加密时使用密钥的字节码 readkey.read(rawKeyData); //使用获得的字节码创建一个DES算法密钥生成的规则-- dks DESKeySpec dks = new DESKeySpec(rawKeyData); //创建一个DES算法密钥的密钥工厂 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); try { //在工厂中使用DES算法密钥生成的规则—dks,创建一个DES密钥 SecretKey skey = keyFactory.generateSecret(dks); Cipher thiskey = Cipher.getInstance("DES"); thiskey.init(Cipher.DECRYPT_MODE, skey); byte[] cipherByte2 = new byte[(int) encryptFile.length()]; fileIn2.read(cipherByte2); cipherByte = thiskey.doFinal(cipherByte2); FileOutputStream fileout2 = new FileOutputStream(decryptFile); fileout2.write(cipherByte); fileIn2.close(); fileout2.close(); } catch (InvalidKeySpecException ex) { } } catch (FileNotFoundException ex) { } catch (NoSuchAlgorithmException ex) { } catch (IOException ex) { } catch (NoSuchPaddingException ex) { } catch (InvalidKeyException ex) { } catch (BadPaddingException ex) { } catch (IllegalBlockSizeException ex) { } }} 问一个JFame中的布局和按钮和JTable问题,很实用哦!欢迎各路大神前来一游 jar转换成.exe之后,图像文件丢失(在线等) 为什么我的摄像头在我的电脑上有RGB和HSV两种编码方式,在别人的电脑上就只有HSV一种呢? 关于JApplet嵌入网页的问题 clsaa具体的作用或用途 初学Java ,碰到一个不解的问题,请教一下高手,关于classpath 哪里有下载eclipse ?? jtree产生后的问题 关于数据越界的问题 我是初学者,问一下Java编译器的问题 小弟有个小问题搞不懂,请高手指点一下,感激万分! byte[]如何转换为int
(originalFile为原文件,encrtpy为加密后的文件,decrtpy为解密的文件)
DES算法的密钥内容不是由用户提供的,是随机产生的这样每次加密后的文件都不相同
public class DESkey {
public DESkey() {
//加密
try {
FileInputStream fileIn = new FileInputStream(originalFile);
//此类提供(对称)密钥生成器的功能(生成一个DES算法的密钥)
KeyGenerator keygen = KeyGenerator.getInstance("DES");
//这里是重点:生成一个密钥--deskey
SecretKey deskey = keygen.generateKey();
//定义一个DES加密算法
Cipher cipher = Cipher.getInstance("DES")
//由于DES算法的密钥是随机的,要解密,就要获得这个密钥
FileOutputStream writeFilekey = new FileOutputStream(fileKey);
//在这里已字节码形式保存这个密钥,使之能在解密时使用
writeFilekey.write(deskey.getEncoded());
//定义DES算法的状态(加密),和使用的密钥
cipher.init(Cipher.ENCRYPT_MODE, deskey);
byte[] cipherByte = new byte[(int) originalFile.length()];
fileIn.read(cipherByte);
//对读入的文件加密
cipherByte = cipher.doFinal(cipherByte);
FileOutputStream fileout = new FileOutputStream(encryptFile);
fileout.write(cipherByte);
fileIn.close();
writeFilekey.close();
fileout.close();
//解密
FileInputStream fileIn2 = new FileInputStream(encryptFile);
FileInputStream readkey = new FileInputStream(fileKey);
byte[] rawKeyData = new byte[(int) fileKey.length()];
//获得原DES加密时使用密钥的字节码
readkey.read(rawKeyData);
//使用获得的字节码创建一个DES算法密钥生成的规则-- dks
DESKeySpec dks = new DESKeySpec(rawKeyData);
//创建一个DES算法密钥的密钥工厂
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
try {
//在工厂中使用DES算法密钥生成的规则—dks,创建一个DES密钥
SecretKey skey = keyFactory.generateSecret(dks);
Cipher thiskey = Cipher.getInstance("DES");
thiskey.init(Cipher.DECRYPT_MODE, skey);
byte[] cipherByte2 = new byte[(int) encryptFile.length()];
fileIn2.read(cipherByte2);
cipherByte = thiskey.doFinal(cipherByte2);
FileOutputStream fileout2 = new FileOutputStream(decryptFile);
fileout2.write(cipherByte);
fileIn2.close();
fileout2.close();
} catch (InvalidKeySpecException ex) {
}
}
catch (FileNotFoundException ex) {
} catch (NoSuchAlgorithmException ex) {
} catch (IOException ex) {
} catch (NoSuchPaddingException ex) {
} catch (InvalidKeyException ex) {
} catch (BadPaddingException ex) {
} catch (IllegalBlockSizeException ex) {
}
}
}