簡體   English   中英

如何下載加密的base64? 然后解密

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM