Discord encryption

Encrypt and decrypt messages on Discord on the fly.

  1. // ==UserScript==
  2. // @name Discord encryption
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.4
  5. // @description Encrypt and decrypt messages on Discord on the fly.
  6. // @author Undead Mockingbird
  7. // @match https://discordapp.com/channels/*
  8. // @require https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. // CONFIG: Insert your password here.
  13. var password = "adfaldskfjlkadsf";
  14. /////////////////////////////////////
  15.  
  16. // Replace any messages we manage to decrypt.
  17. function decryptDiscordMessages(password) {
  18. setTimeout(function(){decryptDiscordMessages(password)}, 10);
  19. var nodes = document.getElementsByClassName('markup-2BOw-j');
  20. for (var i = nodes.length; i--;) {
  21. if (nodes[i].__decrypted != undefined) continue;
  22. nodes[i].__decrypted = true;
  23.  
  24. var text = nodes[i].innerText;
  25. if (text.endsWith('(edited)')) {
  26. text = text.slice(0, -'(edited)'.length);
  27. }
  28. var decrypted = CryptoJS.AES.decrypt(text, password);
  29. if (decrypted == "") continue;
  30. try {
  31. var message = decrypted.toString(CryptoJS.enc.Utf8);
  32. if (message == "") continue;
  33. nodes[i].innerHTML = '<div style="color:red">' + message + '</div>';
  34. } catch (error) {}
  35. }
  36. }
  37. decryptDiscordMessages(password);
  38.  
  39. function registerMessageHook() {
  40. setTimeout(registerMessageHook, 50);
  41. var targetNode = document.getElementsByClassName('textArea-2Spzkt')[0];
  42. if (targetNode == undefined) return;
  43.  
  44. targetNode.onkeydown = function(e){
  45. var message = targetNode.value;
  46. if (message.endsWith('/') && e.keyCode == 191) {
  47. message = message.slice(0, -1);
  48. console.log(message);
  49. var cypher = CryptoJS.AES.encrypt(message, password);
  50. targetNode.value = cypher;
  51. }
  52. };
  53. }
  54. registerMessageHook();