JSFiddle - React, Tailwind, and code Playground

HTML

<input type="file" id="chooseFile"/>
<a id="downloadResult">Download Result</a>
<div id="result"></div>

JavaScript

var resultDataBuffer;

function encrypt(buffer) {
  var encrypters = [172, 115, 254, 242, 170, 186, 109, 171, 48, 58, 139, 167, 222, 13, 21, 33, 74];
  var bytes = new Uint8Array(buffer);
  var output = "";

	for (var i = 0; i < bytes.length; i++) {
    var oldValue = bytes[i];
    var encrypter = encrypters[i % encrypters.length];
    bytes[i] = oldValue ^ encrypter;
  	output += String.fromCharCode(bytes[i]);
  }
  
  resultDataBuffer = buffer;
  return output;
}

document.querySelector('#chooseFile').addEventListener('change', function() {
  var reader = new FileReader();
  reader.onload = function(){
    $('#result').text(encrypt(this.result));
    var blob = new Blob([resultDataBuffer], { 'type': 'application/octet-binary' });
    var objectUrl = URL.createObjectURL(blob);
    $('#downloadResult').attr('href', objectUrl);
  }
  reader.readAsArrayBuffer(this.files[0]);
}, false);