我从网上找了很久,但始终没能找到使自己满意的加密算法。后来找到了一种比较简单的加密算法。但是网上的源码却是错误的。综合了一些网上的资料和自己的想法,改写出了一个满意的DES算法的java实现。源码如下:
package encryption;
import java.security.*;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import sun.misc.*;
/**
* 使用DES加密与解密,可对byte[],String类型进行加密与解密
* 密文可使用String,byte[]存储.
*/
public class encryption {
public static void main(String[] args){
encryption en=new encryption();
String key="123";
en.setKey(key);
String str="爱我中华!";
System.out.println(str);
en.setEncString(str);
String strmi=en.getStrMi();
System.out.println(strmi);//输出加密后的密文
en.setDesString(strmi);
String strming=en.getStrMing();
System.out.println(strming);//输出解密后的明文
}
private Key key;
private byte[] bMi;
private byte[] bMing;
private String sMi;
private String sMing;
public encryption(){
this.bMi=null;
this.bMing=null;
this.sMi="";
this.sMing="";
}
// 根据参数生成KEY
public void setKey(String strKey){
try{
KeyGenerator generator = KeyGenerator.getInstance("DES");
generator.init(new SecureRandom(strKey.getBytes()));
this.key = generator.generateKey();