CryptoJS AES Расшифровка не дает оригинальный файл ZIP/EPUB в реагировать родной
Я использую CryptoJS для шифрования моего epub (or zip)
файл и расшифровать его. я использую react native
создать приложение. Но я не знаю, почему расшифрованный файл не является оригинальным файлом epub. Ошибка при открытии расшифрованного файла epub: Error in opening zip file.
И я использую react-native-fetch-blob
для чтения и записи файлов.
Вот мой код:
шифрование
encrypt() {
// ENCRYPTION
RNFetchBlob.fs.readFile(`${RNFetchBlob.fs.dirs.DownloadDir}/startup.epub`, 'base64')
.then(result => {
console.log('startup.epub read data: ', result);
// Encrypt
const ciphertext = AES.encrypt(result, key);
// Write encrypted file
RNFetchBlob.fs.writeFile(RNFetchBlob.fs.dirs.DownloadDir + '/startup_enc.dat', ciphertext.toString(), 'base64')
.then(() => {
console.log('startup_enc.dat file wrtten');
this.decrypt();
})
.catch(error => {
console.log('startup_enc.dat file writing error', error);
});
})
.catch(err => {
console.log('read error: ', err);
});
}
Я читаю файл epub в
base64
формат. Я зашифровал результат с AES какciphertext
Тогда я написалciphertext.toString()
вstartup_enc.dat
файл вbase64
кодирование.
Дешифрирование
decrypt() {
// DECRYPTION
RNFetchBlob.fs.readFile(`${RNFetchBlob.fs.dirs.DownloadDir}/startup_enc.dat`, 'base64')
.then(result => {
console.log('startup_enc.dat data: ', result);
// Decrypt
const bytes = AES.decrypt(result, key);
const plaintext = bytes.toString(enc.Base64);
// Write decrypted file
RNFetchBlob.fs.writeFile(RNFetchBlob.fs.dirs.DownloadDir + '/startup_dec.epub', plaintext, 'base64')
.then(() => {
console.log('startup_dec.epub file wrtten');
})
.catch(error => {
console.log('startup_dec.epub file writing error', error);
});
})
.catch(err => {
console.log('read error: ', err);
});
}
Потом читаю зашифрованный
startup_enc.dat
файл вbase64
кодирование. Я расшифровал файл и преобразовал вbase64
формат. Тогда я написал расшифрованныйplaintext
вstartup_dec.epub
снова вbase64
формат кодирования.
Размер оригинального файла epub 2.49 MB
Зашифрованный файл 3.11 MB
и расшифрованный файл EPUB также 3.11 MB
В отличие от 2.49 MB
,
Я не могу найти, где проблема, либо в encryption
или в decryption
процесс. Кто-нибудь может помочь?