摘要:
以下是在网上找的,但是经过验证是有点问题的,主要是直接打印byte数组的值是有误的,直接打印实际上调用的是toString()方法,而toString()的默认实现是打印对象类型+hashCode()。项目中要用到加密与解密,从网上找了一个修改了一下packagecom.taiji.fzb.util; importjavax.crypto.*; importjavax.crypto.spec.DESKeySpec; importjava.security.NoSuchAlgorithmException; importjava.security.InvalidKeyException; imp 阅读全文
摘要:
JAVA里面关于byte数组和String之间的转换问题 引自:http://soniccyj.bokee.com/6175850.html JAVA里面关于byte数组和String之间的转换问题 把byte转化成string,必须经过编码。 例如下面一个例子: import java.io.UnsupportedEncodingException; public class test{ public static void main(String g[]) { String s = "12345abcd"; byte b[] = s.getBytes(); String 阅读全文
摘要:
Given final block not properly padded我也有碰到过这样的问题原因是:1、加密完byte[]后,需要将加密了的byte[]转换成base64保存,如:BASE64Encoderbase64encoder=newBASE64Encoder();Stringencode=base64encoder.encode(bytes);2、解密前,需要将加密后的字符串从base64转回来再解密,如:BASE64Decoderbase64decoder=newBASE64Decoder();byte[]encodeByte=base64decoder.decodeBuffer 阅读全文
摘要:
解密的时候报错:javax.crypto.BadPaddingException: Given final block not properly padded咋整? 仔细分析一下,不难发现,该异常是在解密的时候抛出的,加密的方法没有问题。 但是两个方法的唯一差别是Cipher对象的模式不一样,这就排除了程序写错的可能性。再看一下异常的揭示信息,大概的意思是:提供的字块不符合填补的。什么意思???原来在用DES加密的时候,最后一位长度不足64的,它会自动填补到64,那么在我们进行字节数组到字串的转化过程中,可以把它填补的不可见字符改变了,所以引发系统抛出异常。问题找到,怎么解决呢?大... 阅读全文
摘要:
1、报错java.lang.NoClassDefFoundError ,但是相关jar包已经导入工程.解决方案:将jar包放入C盘tomcat上部署的相应项目中的WEB-INF/lib中。web容器有时出现找不到jar包的问题,这样即可解决。 阅读全文