最近项目需要保存密码,对于客户来说 密码对他来说是透明的! 也就是说密码保存的时候加密,取的时候又需要解密! 所以用 DES!
主要是将碰到的问题 列出来记录下!
1:加密得出的byte数组 直接解密是ok的!
2:加密得出的byte数组,通过utf-8 转成string (new String(bytes,"utf-8")); 再 str.getBytes("utf-8") 再解密 就会报错! 什么 密钥要是8 的倍数 !今天想再重现 没重现成功 但是报了个别的错误
Exception in thread "main" java.lang.RuntimeException: decrypt occurred exception
其实就是解密失败了!
3:如果加密得到的结果 循环 byte转成 char 然后拼成 string 再 string 转成byte 是解密成功的
所以问题出在了 byte转成string 上面了! 可是为什么呢? 其实我也不知道 ,但是我试验出来了 原因
因为 解密出来的byte 数组里面有负数
昨天的解决办法是 先base64加密 然后就好了 呵呵呵!
package com.sinitek.sfm.trade.dbn.utils;
import org.apache.commons.lang.Stri