暫無描述

monoalphabetic_substitution.html 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <html>
  2. <head>
  3. <style>
  4. input {
  5. width:30%;
  6. }
  7. .letter {
  8. width:90%;
  9. padding-left:10px;
  10. }
  11. </style>
  12. <script>
  13. function load() {
  14. var list = document.getElementById("list");
  15. for (var i = 1; i <= 26; i++) {
  16. var div = document.createElement("DIV");
  17. var input = document.createElement("INPUT");
  18. div.classList.add("letter");
  19. div.innerHTML = String.fromCharCode(i + 64) + " => ";
  20. if (input.value == "") { input.value = String.fromCharCode(i + 64); }
  21. input.id = "k" + i;
  22. input.oninput = function(){decrypt()};
  23. input.maxLength = "1";
  24. div.appendChild(input);
  25. list.appendChild(div);
  26. }
  27. }
  28. function decrypt() {
  29. var cipher = document.getElementById("cipher").value;
  30. var key = [];
  31. for (var i = 1; i <= 26; i++) {
  32. var letter = document.getElementById("k"+i).value;
  33. key.push(letter.toUpperCase());
  34. }
  35. cipher = cipher.toLowerCase()
  36. for (var i = 1; i <= 26; i++) {
  37. cipher = cipher.replace(new RegExp(String.fromCharCode(i + 96), 'g'), key[i-1]);
  38. }
  39. document.getElementById("plain").innerHTML = cipher;
  40. }
  41. </script>
  42. </head>
  43. <body onload="load()">
  44. <div style="width:80%;height:10%;border:1px solid black;position:absolute;left:10%;top:5%" >
  45. <h1 align="center" style="width:100%;height:100%;"> Monoalphabetic Substitution </h1>
  46. </div>
  47. <div style="width:70%;height:40%;border:1px solid black;position:absolute;left:10%;top:15%;overflow:scroll" >
  48. <h1> Cipher Text </h1>
  49. <textarea id="cipher" oninput="decrypt()" style="width:100%;height:100%;resize:none"> </textarea>
  50. </div>
  51. <div style="width:70%;height:40%;border:1px solid black;position:absolute;left:10%;top:55%;overflow:scroll" >
  52. <h1> Plain Text </h1>
  53. <p id="plain"> </p>
  54. </div>
  55. <div id="list" style="width:10%;height:80%;border:1px solid black;position:absolute;left:80%;top:15%;overflow:scroll" >
  56. <h1 align="center"> Map </h1>
  57. </div>
  58. </body>
  59. </html>