100分求可逆的加密算法 j2se 1.4 中提供了加解密库。javax.crypto 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 原理类似x^=y; y^=x; x^=y; http://java.sun.com/features/2002/09/pword_mask.html 基于密码的加密import java.security.*;import java.security.cert.X509Certificate;import java.io.*;import javax.crypto.*;import javax.crypto.spec.*;public class Encrypt{ private String password; public Encrypt(String password) { this.password=password; } public String encode(String info) { if(info==null) return ""; try { PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray()); SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES"); SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec); byte[] salt = { (byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c, (byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99 }; int count = 2; // 生成pbe算法所需的参数对象,两个参数详见 RSA的 PKCS #5 标准 PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, count); // 生成一个加密器 Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES"); // 初始化加密器 pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey, pbeParamSpec); // 明文 byte[] cleartext = info.getBytes(); // 加密 byte[] ciphertext = pbeCipher.doFinal(cleartext); //返回密文 return new String(ciphertext); } catch (Exception e) { System.out.println(e); }; return ""; } public String decode(String info) { if(info==null) return ""; try { PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray()); SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES"); SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec); byte[] salt = { (byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c, (byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99 }; int count = 20; // 生成pbe算法所需的参数对象,两个参数详见 RSA的 PKCS #5 标准 PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, count); // 生成一个加密器 Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES"); // 初始化加密器 pbeCipher.init(Cipher.DECRYPT_MODE, pbeKey, pbeParamSpec); // 密文 byte[] ciphertext = info.getBytes(); // 解密 byte[] cleartext = pbeCipher.doFinal(ciphertext); //返回明文 return new String(ciphertext); } catch (Exception e) { System.out.println(e); }; return ""; }} 怎么在解密的时候有错误:javax.crypto.BadPaddingException: Given final block not properly padded 把public String encode(String info)改为public byte[] encode(byte[] info)还有public byte[] decode(byte[] info)也要改。 我想把下面这个程序中的两个System.out.println()括号输出数据存到本地文档中以便打印,该怎么弄呢?求完整的代码 为什么MouseListener不能捕获用户所有的点击? 头一次引用循环~我这样用对吗? 不用split () 方法 ,字符串分割问题 招聘java开发工程师 java java读C写的文件 关于UML关系的问题 关于NetBeans IDE 的几个问题! 关于jbuilder中用jdbc连接sybase的问题 讨论一下多级用户管理的问题 请教
x^=y; y^=x; x^=y;
import java.security.*;
import java.security.cert.X509Certificate;
import java.io.*;
import javax.crypto.*;
import javax.crypto.spec.*;
public class Encrypt
{
private String password; public Encrypt(String password)
{
this.password=password;
} public String encode(String info)
{
if(info==null)
return "";
try
{
PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec); byte[] salt = {
(byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c,
(byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99
}; int count = 2; // 生成pbe算法所需的参数对象,两个参数详见 RSA的 PKCS #5 标准
PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, count); // 生成一个加密器
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES"); // 初始化加密器
pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey, pbeParamSpec); // 明文
byte[] cleartext = info.getBytes(); // 加密
byte[] ciphertext = pbeCipher.doFinal(cleartext); //返回密文
return new String(ciphertext);
}
catch (Exception e)
{
System.out.println(e);
};
return "";
} public String decode(String info)
{
if(info==null)
return "";
try
{
PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec); byte[] salt = {
(byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c,
(byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99
}; int count = 20; // 生成pbe算法所需的参数对象,两个参数详见 RSA的 PKCS #5 标准
PBEParameterSpec pbeParamSpec = new PBEParameterSpec(salt, count); // 生成一个加密器
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES"); // 初始化加密器
pbeCipher.init(Cipher.DECRYPT_MODE, pbeKey, pbeParamSpec); // 密文
byte[] ciphertext = info.getBytes(); // 解密
byte[] cleartext = pbeCipher.doFinal(ciphertext); //返回明文
return new String(ciphertext);
}
catch (Exception e)
{
System.out.println(e);
};
return "";
}
}
改为public byte[] encode(byte[] info)
还有public byte[] decode(byte[] info)也要改。