saving encrypted object as file - cryptojs

711 views Asked by At

I am using cryptojs to encrypt and decrypt a file. I also have a web service to upload the encrypted files to a server. I can upload and save the ecnrypted object as a file on the server, but when I decrypt it, the file does not open correctly. My concern is if I am saving the ecnrypted object correctly or not.

Tutorial that I followed initially: http://tutorialzine.com/2013/11/javascript-file-encrypter/

encryt method:

function encrypt() {
      var folderPath = "C:\\User\\test\\javascript-file-encrypter\\";
      selectedFiles = document.getElementById("MainContent_file1");
      var sfile = selectedFiles.files[0];
      var read = new FileReader();
      read.onload = function (e) {
        var encrypted = CryptoJS.AES.encrypt(read.result, '123456');
        var ct2 = encrypted.toString();
      $.ajax({
        async: 'true',
        url: "http://localhost:51936/WebService1.asmx/FileUpload",
        method: "POST",
        processData: 'false',
        headers: {
            'content-type': "application/x-www-form-urlencoded",
            'cache-control': "no-cache"
        },
        data: { 'folderPath': folderPath, 'uploadData': ct2, 'fileName': sfile.name + '.encrypted' },

        success: function (response) {
            console.log(response);
            debugger;
        },
        error: function (xhr, textStatus, error) {
            debugger;
            console.log(xhr.statusText);
        }
    });
    }
    read.readAsDataURL(sfile);
    }

decrypt method:

function decrypt() {

var sfiles = document.getElementById("MainContent_file1");
var sfile = sfiles.files[0];
var freader = new FileReader();
freader.onload = function (e) {

    var decrypted = CryptoJS.AES.decrypt(freader.result, '123456');
    var dct = decrypted.toString(CryptoJS.enc.Latin1);
    //var dct2 = decrypted.toString();
    //console.log(dct);
    //console.log(dct2);
    debugger;
    $.ajax({
        async: 'true',
        url: "http://localhost:51936/WebService1.asmx/FileUpload",
        method: "POST",
        processData: 'false',
        headers: {
            'content-type': "application/x-www-form-urlencoded",
            'cache-control': "no-cache"
        },
        data: { 'folderPath': folderPath, 'uploadData': dct, 'fileName': sfile.name.replace('.encrypted', '') },

        success: function (response) {
            console.log(response);
            debugger;
        },
        error: function (xhr, textStatus, error) {
            debugger;
            console.log(xhr.statusText);
        }
    });

};

freader.readAsText(sfile);

}

webservice method:

[WebMethod]
    public bool FileUpload(string folderPath, string uploadData, string fileName)
    {

        bool returnValue = false;
        try
        {
            File.WriteAllText(folderPath + fileName, uploadData);
            returnValue = true;

        }
        catch (Exception ex)
        {
            returnValue = false;
        }

        return returnValue;
    }
0

There are 0 answers