91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android getfilesdir 能否加密存儲

小樊
83
2024-11-26 01:27:03
欄目: 云計算

getFilesDir() 方法用于獲取應用內部存儲的目錄,這個目錄下的文件默認是加密存儲的

如果你需要加密存儲文件,可以使用 Cipher 類來實現加密和解密操作。以下是一個簡單的示例:

import android.util.Base64;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public class EncryptionUtil {
    private static final String ALGORITHM = "AES";
    private static final String TRANSFORMATION = "AES/CBC/PKCS5Padding";
    private static final String CHARSET = "UTF-8";

    public static String encrypt(String data, String key) throws Exception {
        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(CHARSET), ALGORITHM);
        IvParameterSpec ivParameterSpec = new IvParameterSpec(new byte[16]);
        Cipher cipher = Cipher.getInstance(TRANSFORMATION);
        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
        byte[] encryptedData = cipher.doFinal(data.getBytes(CHARSET));
        return Base64.encodeToString(encryptedData, Base64.DEFAULT);
    }

    public static String decrypt(String data, String key) throws Exception {
        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(CHARSET), ALGORITHM);
        IvParameterSpec ivParameterSpec = new IvParameterSpec(new byte[16]);
        Cipher cipher = Cipher.getInstance(TRANSFORMATION);
        cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
        byte[] decodedData = Base64.decode(data, Base64.DEFAULT);
        return new String(cipher.doFinal(decodedData), CHARSET);
    }
}

使用這個工具類,你可以在 getFilesDir() 目錄下加密和解密文件。但請注意,你需要確保密鑰(key)的安全性,因為它是解密文件所必需的。

0
云和县| 盱眙县| 桑日县| 教育| 威远县| 奉节县| 巨野县| 法库县| 江北区| 河东区| 徐州市| 来宾市| 大兴区| 东辽县| 彭泽县| 蒙阴县| 广昌县| 罗山县| 德化县| 枣庄市| 四子王旗| 卓资县| 河津市| 晋州市| 吕梁市| 庆城县| 赤壁市| 诸城市| 南平市| 宝清县| 华坪县| 浮梁县| 德江县| 康平县| 恭城| 星子县| 广安市| 黑龙江省| 惠州市| 介休市| 正蓝旗|