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;
    }
}

  

posted @ 2018-08-03 15:46  童话二分之一  阅读(195)  评论(0编辑  收藏  举报