private String get(@NonNull String key, @Nullable String defValue) {
   String target = sp.getString(Digest.MD5.getHex(key), null);
   if (target == null) {
     return defValue;
   } else {
     try {
       return new String(
           Crypt.AES.decrypt(secret, iv, Base64.decode(target, Base64.DEFAULT)), CHARSET_UTF_8);
     } catch (Crypt.CryptException e) {
       Log.e(TAG, "value decrypt error at key :" + key, e);
       return defValue;
     }
   }
 }