我想你的"DDE57E49A4ACBF7B"应该并不是说直接getBytes的
应该是
byte[] buf = new byte[myinfo.length()/2];
for(int i = 0; i < myinfo.length() / 2; i++) {
buf[i] = Integer.parseInt(myinfo.substring(i*2,i*2+2),16);
}
c1.doFinal(buf);
应该是
byte[] buf = new byte[myinfo.length()/2];
for(int i = 0; i < myinfo.length() / 2; i++) {
buf[i] = Integer.parseInt(myinfo.substring(i*2,i*2+2),16);
}
c1.doFinal(buf);
解决方案 »
- 请教spring 事务的问题
- Ext json GRID 分页问题 高手解答
- smartrcp Error#2046
- struts2类型转换的问题,在线等:ognl.MethodFailedException: Method "setMinCash
- 问一个老问题,在Struts中,怎样用jspsmartupload上传文件?
- 求助--谁有struts2+hibernate+mysql做的web小系统。。
- SQL 中IN 的变量绑定为何查询不到数据
- 一般颜色的button怎么写、就是点一下出个画面、选个色点OK、边上的TextBox就显示那个s色
- java读取不在工程内的文件夹下的图片
- 如何用JAVA读取EXCEL文件里面的数据
- 请问如何适用Hibernate API中public Query createSQLQuery(String sql, String[] returnAliases,Class[] returnClasses)
- 各位老师,学生求教 DynaValidatorForm 问题?
还是不行.
byte[] key = "teddygir".getBytes();
byte[] src = "3134".getBytes();
byte[] des2 = (new String("DDE57E49A4ACBF7B")).getBytes();
byte[] tt = new byte[8];
tt[0] = (byte) 0Xdd;
tt[1] = (byte) 0Xe5;
tt[2] = (byte) 0X7e;
tt[3] = (byte) 0X49;
tt[4] = (byte) 0Xa4;
tt[5] = (byte) 0Xac;
tt[6] = (byte) 0Xbf;
tt[7] = (byte) 0X7B; byte[] des = encrypt(src, key);
System.out.println("des" + des.length + "\n");
//System.out.println(byte2hex(des));
System.out.println("before decrypt");
des = decrypt(tt,key);
System.out.println("after decrypt");
System.out.println(byte2hex(des));
System.out.println(new String(des));代码是这样的,因为DDE57E49A4ACBF7B串中我们是要变成16进制的
结果报个错是:
javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.SunJCE_h.b(DashoA6275)
at com.sun.crypto.provider.SunJCE_h.b(DashoA6275)
at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA6275)
at javax.crypto.Cipher.doFinal(DashoA6275)
at com.keem.kit.crypto.DES64.decrypt(DES64.java:122)
at com.keem.kit.crypto.DES64.main(DES64.java:192)
这一句改成这个样子试一下。