Попытка зашифровать PDF-файл, содержащий текстовое и графическое содержимое, с использованием алгоритма шифрования AES.после дешифрования дешифрованный контент не такой, как содержимое изображения в pdf, но текстовая часть такая же, как и ожидалось.
Это требование проекта сначала зашифровать файл pdf, содержащий текст и изображение, и отправить на сервер (ДЖАВА).При получении получите зашифрованный файл и расшифруйте его.
При расшифровке, ожидающей того же содержимого файла, что и до шифрования.
encryptFile(file): Promise<string> {
return new Promise((resolve, reject) => {
const reader = new FileReader();
const key = CryptoJS.enc.Base64.parse('u/Gu5posvwDsXUnV5Zaq4g==');
const iv = CryptoJS.enc.Base64.parse('5D9r9ZVzEYYgha93/aUK2w==');
reader.onloadend = function (e) {
const utf8Stringified = CryptoJS.enc.Utf8.parse(reader.result)
const encrypted = CryptoJS.AES.encrypt(utf8Stringified, key, { iv:
iv,
padding: CryptoJS.pad.Pkcs7, mode: CryptoJS.mode.CBC })
resolve(CryptoJS.enc.Base64.stringify(encrypted.ciphertext))
};
reader.readAsText(file);
})
}
decryptFile(file): Promise<string> {
return new Promise((resolve, reject) => {
const reader = new FileReader()
const key = CryptoJS.enc.Base64.parse('u/Gu5posvwDsXUnV5Zaq4g==');
const iv = CryptoJS.enc.Base64.parse('5D9r9ZVzEYYgha93/aUK2w==');
reader.onloadend = function (e) {
const decrypted = CryptoJS.AES.decrypt(reader.result, key, { iv: iv,
padding: CryptoJS.pad.Pkcs7, mode: CryptoJS.mode.CBC })
resolve(decrypted.toString(CryptoJS.enc.Utf8))
};
reader.readAsText(file);
})
}