[英]How to download base64 which is encrypted? and Decrypt after that
我想在客戶端瀏覽器中對圖像進行加密和解密。
我創建了上傳圖像並加密 base64。 但是,我不知道如何下載這個加密圖像(格式圖像不是文本)。
之后我想上傳這個加密的圖像進行解密。
感謝您的提前,我很抱歉我的英語不好。
$(document).ready(function() {
$("#form-encrypt").on('submit', function(e){
e.preventDefault();
disabledButton('btn-submit-encrypt');
let filesSelected = document.getElementById("inputFileToLoad").files;
let fileExtension = filesSelected[0].name.split('.').pop()
const password = $('#password').val();
if (filesSelected.length > 0) {
let fileToLoad = filesSelected[0];
let fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
let base64value = fileLoadedEvent.target.result;
let encrypt = CryptoJS.AES.encrypt(base64value, password).toString();
};
fileReader.readAsDataURL(fileToLoad);
}
});
$("#form-decrypt").on('submit', function(e){
e.preventDefault();
const ciphertext = document.querySelector('#encrypt-text').value;
const pass = document.querySelector('#password-decrypt').value;
try {
let bytes = CryptoJS.AES.decrypt(ciphertext, pass);
const originalText = bytes.toString(CryptoJS.enc.Utf8);
const preview = document.getElementById('preview');
preview.setAttribute('src', originalText);
$("#preview").show();
} catch (error) {
alert('Wrong Password, or Encrypt Text Not Right');
}
});
});
function downloadTxt(filename, data, mimeType) {
let element = document.createElement('a');
element.setAttribute('download', filename);
mimeType = mimeType || 'text/plain';
element.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + [enter image description here][1]encodeURIComponent(data));
element.click();
}
function disabledButton(elm) {
const element = document.getElementById(elm);
element.setAttribute('disabled', true);
element.innerHTML = 'Loading..';
}
是的,我已經知道了。
我錯了,因為我在 fileReader 中加密了所有結果,您必須拆分 base64 值。
例子:
數據:圖像/png;base64,iVBOblablabla
用 (, ) 分割,你得到數組 data[0] = data:image/png;base64 data[1] = iVBOblablabla
你應該只加密數據[1]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.