public class DES { /**
* @param args
*/
public static void main(String[] args) {
byte[] bb = enc();
dec(bb);
}
private static byte[] enc()
{
byte[] c = null;
try{
byte[] m = null;
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey sk = kg.generateKey();
m = "Hello Des World".getBytes();
Cipher ch = Cipher.getInstance("DES");
ch.init(Cipher.ENCRYPT_MODE, sk);
c = ch.doFinal(m);
System.out.println("after uncodeing:" + new String(c));
}catch(Exception e){
System.out.println(e);
}
return c;
}
private static void dec(byte[] c)
{
try{
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey sk = kg.generateKey();
Cipher ch = Cipher.getInstance("DES"); ch.init(Cipher.DECRYPT_MODE, sk);
System.out.println("bb");
byte[] m2 = ch.doFinal(c);
System.out.println("ccc");
System.out.println("after uncodeing:" + new String(m2));
}catch(Exception e){
System.out.println(e);
}
}
}
================
javax.crypto.BadPaddingException: Given final block not properly padded为什么阿?
* @param args
*/
public static void main(String[] args) {
byte[] bb = enc();
dec(bb);
}
private static byte[] enc()
{
byte[] c = null;
try{
byte[] m = null;
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey sk = kg.generateKey();
m = "Hello Des World".getBytes();
Cipher ch = Cipher.getInstance("DES");
ch.init(Cipher.ENCRYPT_MODE, sk);
c = ch.doFinal(m);
System.out.println("after uncodeing:" + new String(c));
}catch(Exception e){
System.out.println(e);
}
return c;
}
private static void dec(byte[] c)
{
try{
KeyGenerator kg = KeyGenerator.getInstance("DES");
SecretKey sk = kg.generateKey();
Cipher ch = Cipher.getInstance("DES"); ch.init(Cipher.DECRYPT_MODE, sk);
System.out.println("bb");
byte[] m2 = ch.doFinal(c);
System.out.println("ccc");
System.out.println("after uncodeing:" + new String(m2));
}catch(Exception e){
System.out.println(e);
}
}
}
================
javax.crypto.BadPaddingException: Given final block not properly padded为什么阿?
解决方案 »
- 【求助】linux下java调用awk
- 求助
- 关于JDK版本的问题。
- Jbuilder 的jdbTable不显示列名
- 如果我想给一个变量赋值“+”,那这个变量算是什么类型的呢?
- 刷屏问题急救
- 新手问题:怎么样建立一维数组,这个数组的成员都是一个自已定义的类的对象(内详)?
- 关于jbuilder的问题,来者有分。
- 诚恳的请您帮助:关于数字签名的问题,如何在客户端自动倒入证书,而不需要用keytool -import命令实现倒入?
- 对于AtomicInteger的测试,感觉有问题,初学者求助。
- InputStreamReader 读不到输入数据时会怎么处理?
- 下面这段代码怎么打印不出“school”的值,请大家帮我看一下
楼主【InternetEmail】截止到2008-07-01 21:19:52的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:100
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:100
结贴的百分比:0.00 % 结分的百分比:0.00 %
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;public class DES { /**
* @param args
*/
public static void main(String[] args) { byte[] bb = enc();
dec(bb);
} static KeyGenerator kg;
static SecretKey sk;
static Cipher ch;
static {
try {
kg = KeyGenerator.getInstance("DES");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sk = kg.generateKey();
try {
ch = Cipher.getInstance("DES");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
}
} private static byte[] enc() { byte[] c = null;
try {
byte[] m = null; m = "Hello Des World".getBytes(); Cipher ch = Cipher.getInstance("DES");
ch.init(Cipher.ENCRYPT_MODE, sk);
c = ch.doFinal(m);
} catch (Exception e) {
e.printStackTrace();
}
return c;
} private static void dec(byte[] c) {
try { ch.init(Cipher.DECRYPT_MODE, sk);
byte[] m2 = ch.doFinal(c);
} catch (Exception e) {
e.printStackTrace();
} }
}
否则报错