普通的des加密:
byte[] keys=password.getBytes();
DESKeySpec desKey = new DESKeySpec(keys);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(desKey);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, securekey, new IvParameterSpec(keys));
byte[] result = cipher.doFinal(datasource.getBytes());
返回一个字节数组,当转换为字符串时乱码,由于内存数据流和字符串的编码规则不同。
解决方法:
把加密后的字节数组再通过base64加密一次,乱码问题解决,只需要des解密之前用base64解密就可以了。