ファイル書き込みストリームをCipherOutputStream
ランダムな文字列や数値などを生成します。そのバイト配列を取得し、キーを生成し、それを使用してファイルを暗号化します。
byte password[] = (WHAT YOUR WANT. STRING, NUMBER, etc.).getBytes();
DESKeySpec desKeySpec;
try {
desKeySpec = new DESKeySpec(password);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(desKeySpec);
Cipher desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, key);
// Create stream
FileOutputStream fos = new FileOutputStream("Your file here");
BufferedOutputStream bos = new BufferedOutputStream(fos);
CipherOutputStream cos = new CipherOutputStream(bos, desCipher);
}
これで、次を使用してファイルに書き込むことができますcos
ファイルの読み取りは、SecretKey
オブジェクトを使用して同じ方法で行われます
SecretKey key = loadKey(); // Deserialize your SecretKey object
try {
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key);
FileInputStream fis = new FileInputStream("Your file here");
BufferedInputStream bis = new BufferedInputStream(fis);
CipherInputStream cis = new CipherInputStream(bis, cipher);
今、あなたは使用して読むことができますcis
欠点は、オブジェクトを保持する必要があることですSecretKey
(シリアル化するか何か)、低レベルのハッカーがデータを取得することは問題になりません(キーはデバイスに保存されるため)が、単に変更することはできませんテキストエディタを使用してデータを編集します。