本文实现的Android下的是DES和3DES算法,Java同样也适用。
DES算法如下:
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
public class DESUtils {
private static byte[] parse(String str) {
byte[] b = new byte[str.length() / 2];
for (int i = 0, n = str.length(); i < n; i += 2) {
b[i / 2] = (byte) (Integer.parseInt(str.substring(i, i + 2), 16));
}
return b;
}
/**
* 加密
* @param src
* @param password
* @return
*/
public static byte[] enCode(byte[] src, String password) {
try {
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(new DESKeySpec(parse(password)));// 密钥
Cipher cipher = Cipher.getInstance("DES"