DES加密
工具类,没啥好说的。那就给萌新讲个"骚操作"好了。----我猜总有人不知道的,大佬当没看见好了---
你看到以下这个类会怎么做?首先去新建一个class文件叫DES然后复制代码?那你就out了。
正确的操作是,选中下面全部代码,“ctrl+c”然后到打算放的包名上“ctrl+V”。
以上方法适合as,ec的没试过。 乀(ˉεˉ乀)
import android.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
public class DES {
/**
* DES加密
*
* @param data 数据源
* @param password 数据密钥(8的整数倍长度)
* @return
*/
public static String getDES(String data, String password) {
byte[] datasource = data.getBytes();
try {
DESKeySpec desKey = new DESKeySpec(password.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(desKey);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
IvParameterSpec iv = new IvParameterSpec(password.getBytes());
cipher.init(Cipher.ENCRYPT_MODE, securekey, iv);//注意,不同的des加密最后iv位置的参数可能不同,这也是可能导致des加密后字符串无法解密的原因
return Base64.encodeToString(cipher.doFinal(datasource), Base64.DEFAULT);
} catch (Throwable e) {
e.printStackTrace();
}
return null;
}
}