example_long.html 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>使用jsencrypt执行长文本加密,解密</title>
  6. </head>
  7. <body>
  8. <input type="button" id="btn" value="点我" />
  9. <textarea id="tra" rows="15" cols="65">
  10. MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKX1Fs2JUD25zrAEwPnjnZC0az
  11. rl1XjGzGrJ64eb1lr9QVVOO2zGKZdqDLZD4Ut4Mp6GHMaqqFXKm+zN7IAXu+mqZb
  12. UrqUziHE5YGC02wObiZEzfa6V9a8ZvqpB+Z8KO+hAkkjzjMl+E+hDORpZmez3SMz
  13. etn7mcCeLw8/vmxz3QIDAQAB
  14. </textarea>
  15. <textarea id="sra" rows="15" cols="65">
  16. MIICXgIBAAKBgQDKX1Fs2JUD25zrAEwPnjnZC0azrl1XjGzGrJ64eb1lr9QVVOO2
  17. zGKZdqDLZD4Ut4Mp6GHMaqqFXKm+zN7IAXu+mqZbUrqUziHE5YGC02wObiZEzfa6
  18. V9a8ZvqpB+Z8KO+hAkkjzjMl+E+hDORpZmez3SMzetn7mcCeLw8/vmxz3QIDAQAB
  19. AoGBAJBr6b4V6nJwXdHPyngy4PGl/HTqcK60BkTamALqzmEtU9tNU5z2yz7dy+6a
  20. wTsjo7Vao8CwNrUp5fHGXw65EEc1/3Iu2Fiix0XF7RP4NFSoxbBmzQW1nUK/5DFi
  21. 4VR1uhEmdbgLwGabsdqzeUqhRKkRGAPVCotBjaDBOu0J3Mu5AkEA+SM7Ctu7evOv
  22. ZwjWrp9a5MGxJ9yLLabbIuWL+420jr2G6ojaTZ2ROA2DWWQPx4JqWxDHttomrb38
  23. dk2emP2WAwJBAM/yU58YRQ+dTeuTzNYC1JdWcs35n9+hoVP7y+x29CmcqDTPp3nR
  24. Bbbq88yMb2nZdlwthWi7BurNHsRJFqj0GJ8CQF5gJCuW1UxcJ2PGi1yW7R2e6fcJ
  25. qoden8B2aDKgmXdBAGyz7s5cE/jB1bH1H60aECPzFVSFCwXh5FMEUEHwPfUCQQC7
  26. JqZ57lbhebrSRcA58GwzFFvY40wu8gIHWvwqgti2xsZgWW+qZCPXf9gSBWaUhmJP
  27. Da0fGAxesGN7VyhswNuTAkEAzCFNqL/zwHXcwh9YyHTdk/bRWIJq49jTA+vbgGv0
  28. szKIvGRKoRbub3NEUiI80TDsCAvbJ6R80J7RjnpmShOwcA==
  29. </textarea>
  30. </body>
  31. <script src="./jquery.js"></script>
  32. <!--引入jsencrypt.js-->
  33. <script src="./bin/jsencrypt.js"></script>
  34. <script type="text/javascript">
  35. let startTime = new Date();
  36. //公钥
  37. const PUBLIC_KEY = `
  38. -----BEGIN PUBLIC KEY-----
  39. MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKX1Fs2JUD25zrAEwPnjnZC0az
  40. rl1XjGzGrJ64eb1lr9QVVOO2zGKZdqDLZD4Ut4Mp6GHMaqqFXKm+zN7IAXu+mqZb
  41. UrqUziHE5YGC02wObiZEzfa6V9a8ZvqpB+Z8KO+hAkkjzjMl+E+hDORpZmez3SMz
  42. etn7mcCeLw8/vmxz3QIDAQAB
  43. -----END PUBLIC KEY-----`;
  44. //私钥
  45. const PRIVATE_KEY = `
  46. -----BEGIN PUBLIC KEY-----
  47. MIICXgIBAAKBgQDKX1Fs2JUD25zrAEwPnjnZC0azrl1XjGzGrJ64eb1lr9QVVOO2
  48. zGKZdqDLZD4Ut4Mp6GHMaqqFXKm+zN7IAXu+mqZbUrqUziHE5YGC02wObiZEzfa6
  49. V9a8ZvqpB+Z8KO+hAkkjzjMl+E+hDORpZmez3SMzetn7mcCeLw8/vmxz3QIDAQAB
  50. AoGBAJBr6b4V6nJwXdHPyngy4PGl/HTqcK60BkTamALqzmEtU9tNU5z2yz7dy+6a
  51. wTsjo7Vao8CwNrUp5fHGXw65EEc1/3Iu2Fiix0XF7RP4NFSoxbBmzQW1nUK/5DFi
  52. 4VR1uhEmdbgLwGabsdqzeUqhRKkRGAPVCotBjaDBOu0J3Mu5AkEA+SM7Ctu7evOv
  53. ZwjWrp9a5MGxJ9yLLabbIuWL+420jr2G6ojaTZ2ROA2DWWQPx4JqWxDHttomrb38
  54. dk2emP2WAwJBAM/yU58YRQ+dTeuTzNYC1JdWcs35n9+hoVP7y+x29CmcqDTPp3nR
  55. Bbbq88yMb2nZdlwthWi7BurNHsRJFqj0GJ8CQF5gJCuW1UxcJ2PGi1yW7R2e6fcJ
  56. qoden8B2aDKgmXdBAGyz7s5cE/jB1bH1H60aECPzFVSFCwXh5FMEUEHwPfUCQQC7
  57. JqZ57lbhebrSRcA58GwzFFvY40wu8gIHWvwqgti2xsZgWW+qZCPXf9gSBWaUhmJP
  58. Da0fGAxesGN7VyhswNuTAkEAzCFNqL/zwHXcwh9YyHTdk/bRWIJq49jTA+vbgGv0
  59. szKIvGRKoRbub3NEUiI80TDsCAvbJ6R80J7RjnpmShOwcA==
  60. -----END PUBLIC KEY-----`;
  61. // 使用设置公私钥
  62. const enc = new JSEncrypt();
  63. enc.setPublicKey(PUBLIC_KEY);
  64. enc.setPublicKey(PRIVATE_KEY);
  65. // 一段长文本json
  66. let data = {
  67. code: 200,
  68. result: {
  69. timestamp: 1572321851823,
  70. interaction: [
  71. {
  72. type: "shootYourBullet",
  73. body:
  74. '{"actId":"241532192085135360","timestamp":1572321762049,"actTempId":"2","queIds":["10020"],"actTime":60,"online_trace_id":null}',
  75. liveId: 100066318,
  76. lecturerId: "XN014604",
  77. tutorId: "XN014606",
  78. parentType: "interaction",
  79. module: "START",
  80. command: "START",
  81. stuId: null,
  82. online_trace_id: "fhCb3oVqjM"
  83. }
  84. ],
  85. upStream: {},
  86. downStream: {},
  87. liveStream: []
  88. }
  89. };
  90. data = JSON.stringify(data);
  91. let encrypted = enc.encryptLong(data);
  92. let endTime = new Date();
  93. console.log("加密后数据:%o", encrypted);
  94. console.log("加密时间" + (endTime - startTime) + "ms");
  95. //使用私钥解密
  96. let uncrypted = enc.decryptLong(encrypted);
  97. console.log("解密后数据:%o", uncrypted);
  98. </script>
  99. </html>