用JAVA实现的DES加密解密算法
来源:互联网 发布:淘宝收藏怎么看不到 编辑:程序博客网 时间:2024/06/04 18:13
package Encrypt;
import java.security.*;
import javax.crypto.*;
import sun.misc.*;
/**
* 使用DES加密与解密,可对byte[],String类型进行加密与解密
* 密文可使用String,byte[]存储.
* 方法:
* void getKey(String strKey)从strKey的字条生成一个Key
* String getEncString(String strMing)对strMing进行加密,返回String密文
* String getDesString(String strMi)对strMin进行解密,返回String明文
* byte[] getEncCode(byte[] byteS)byte[]型的加密
* byte[] getDesCode(byte[] byteD)byte[]型的解密
*/
public class Encrypt{
private Key key;
private byte[] byteMi = null;
private byte[] byteMing = null;
private String strMi= "";
private String strM= "";
// 根据参数生成KEY
public void setKey(String strKey){
try{
KeyGenerator _generator = KeyGenerator.getInstance("DES");
_generator.init(new SecureRandom(strKey.getBytes()));
this.key = _generator.generateKey();
_generator=null;
}
catch(Exception e){
e.printStackTrace();
}
}
// 加密String明文输入,String密文输出
public void setEncString(String strMing){
BASE64Encoder base64en = new BASE64Encoder();
try {
this.byteMing = strMing.getBytes("UTF8");
this.byteMi = this.getEncCode(this.byteMing);
this.strMi = base64en.encode(this.byteMi);
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
this.byteMing = null;
this.byteMi = null;
}
}
//加密以byte[]明文输入,byte[]密文输出
private byte[] getEncCode(byte[] byteS){
byte[] byteFina = null;
Cipher cipher;
import java.security.*;
import javax.crypto.*;
import sun.misc.*;
/**
public class Encrypt{