简介
最近手机中涉及到用户账户密码保存的问题,选用 AES 加密算法进行加密后,再通过 SharedPreferences 保存在手机端。
本文主要介绍 AES 的加密、解密用法。
代码
初始化秘钥
    private static final String AES = "AES";
    private static final String PASSWPRD = "123456";
    public static SecretKeySpec initKey(){
        SecretKeySpec key = null;
        try {
            KeyGenerator kg = KeyGenerator.getInstance(AES);
            kg.init(128,new SecureRandom(PASSWPRD.getBytes()));//通过这种算法,每次生成的 key 都是一样的
          //也可以 kg.init(128),这样每次生成的 key 都不一样
            SecretKey securityKey = kg.generateKey();
            byte[] encodedKey = securityKey.getEncoded();
            key = new SecretKeySpec(encodedKey, AES);//AES 也可以替换为"AES/CBC/PKCS5PADDING"
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return key;
    }
原创2018/1/22大约 2 分钟
