1.前台JS

  1. <script type="text/javascript">
  2. $(function() {
  3. $("#btn").click(function() {
  4. var username = encode64($("#username").val()); //对数据加密
  5. var password = encode64($("#password").val());
  6. $("#username").val(username);
  7. $("#password").val(password);
  8. document.fm.submit(); //fm为form表单name
  9. })
  10. })
  11.  
  12. // base64加密开始
  13. var keyStr = "ABCDEFGHIJKLMNOP" + "QRSTUVWXYZabcdef" + "ghijklmnopqrstuv"
  14. + "wxyz0123456789+/" + "=";
  15.  
  16. function encode64(input) {
  17.  
  18. var output = "";
  19. var chr1, chr2, chr3 = "";
  20. var enc1, enc2, enc3, enc4 = "";
  21. var i = 0;
  22. do {
  23. chr1 = input.charCodeAt(i++);
  24. chr2 = input.charCodeAt(i++);
  25. chr3 = input.charCodeAt(i++);
  26. enc1 = chr1 >> 2;
  27. enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
  28. enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
  29. enc4 = chr3 & 63;
  30. if (isNaN(chr2)) {
  31. enc3 = enc4 = 64;
  32. } else if (isNaN(chr3)) {
  33. enc4 = 64;
  34. }
  35. output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2)
  36. + keyStr.charAt(enc3) + keyStr.charAt(enc4);
  37. chr1 = chr2 = chr3 = "";
  38. enc1 = enc2 = enc3 = enc4 = "";
  39. } while (i < input.length);
  40.  
  41. return output;
  42. }
  43. // base64加密结束
  44. </script>

2、后台java代码

  1. private static char[] base64EncodeChars = new char[] { 'A', 'B', 'C', 'D',
  2. 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
  3. 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
  4. 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
  5. 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3',
  6. '4', '5', '6', '7', '8', '9', '+', '/', };
  7.  
  8. private static byte[] base64DecodeChars = new byte[] { -1, -1, -1, -1, -1,
  9. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  10. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  11. -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59,
  12. 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  13. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
  14. -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  15. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1,
  16. -1, -1 };
  17.  
  18. /**
  19. * 解密
  20. * @param str
  21. * @return
  22. */
  23. public static byte[] decode(String str) {
  24. byte[] data = str.getBytes();
  25. int len = data.length;
  26. ByteArrayOutputStream buf = new ByteArrayOutputStream(len);
  27. int i = 0;
  28. int b1, b2, b3, b4;
  29.  
  30. while (i < len) {
  31. do {
  32. b1 = base64DecodeChars[data[i++]];
  33. } while (i < len && b1 == -1);
  34. if (b1 == -1) {
  35. break;
  36. }
  37.  
  38. do {
  39. b2 = base64DecodeChars[data[i++]];
  40. } while (i < len && b2 == -1);
  41. if (b2 == -1) {
  42. break;
  43. }
  44. buf.write((int) ((b1 << 2) | ((b2 & 0x30) >>> 4)));
  45.  
  46. do {
  47. b3 = data[i++];
  48. if (b3 == 61) {
  49. return buf.toByteArray();
  50. }
  51. b3 = base64DecodeChars[b3];
  52. } while (i < len && b3 == -1);
  53. if (b3 == -1) {
  54. break;
  55. }
  56. buf.write((int) (((b2 & 0x0f) << 4) | ((b3 & 0x3c) >>> 2)));
  57.  
  58. do {
  59. b4 = data[i++];
  60. if (b4 == 61) {
  61. return buf.toByteArray();
  62. }
  63. b4 = base64DecodeChars[b4];
  64. } while (i < len && b4 == -1);
  65. if (b4 == -1) {
  66. break;
  67. }
  68. buf.write((int) (((b3 & 0x03) << 6) | b4));
  69. }
  70. return buf.toByteArray();
  71. }
  72.  
  73. System.out.println(new String(decode(username))); // 使用decode()方法进行解密

明文暴露___JS前台加密,java后台解密实现的更多相关文章

  1. 【转】JS前台加密,java后台解密实现

    因项目需求,需要一些敏感信息进行加密,不能以明文暴露到浏览器. 然后后台进行解密操作 先看一下效果图 未对其加密传输 1.前台JS <script type="text/javascr ...

  2. rsa实现js前台加密java后台解密

    前段时间写了一个rsa前台加密到后台用java解密,下面共享下实现思路: 准备工作:第三方包是必须的 bcprov-jdk15on-148.jar commons-codec-1.7.jar comm ...

  3. RSA 前段加密 java 后台解密 已调试通过

    本人整理网上的.好多网上的调不通.在这里把调试好的贴出来. 1.   异步获取公钥(后台获取):你也可以将公钥串写在页面上: var publicKey = null; $.ajax({ url: c ...

  4. js前台加密,java后台解密实现

    参考资料: JS前台加密,java后台解密实现

  5. js base64加密,后台解密

    这是为了解决页面发送post请求,传输密码,在页面的控制台可以看到密码的明文,所以先用base64把要传输的密码转换为非明文,然后在后台解密处理. base64encode.js // base64加 ...

  6. java 后台解密小程序前端传过来的信息,解密手机号

    package com.llny.controller; import com.google.gson.Gson; import com.google.gson.JsonObject; import ...

  7. JS前端加密JAVA后端解密详解

    最近有一个加解密的需求,其实没有什么难度,但是实践过程中踩了很多坑,把踩坑过程分享出来. 1.前端JS加密 /** * 加密(需要先加载aes.min.js文件) * @param word * @r ...

  8. AES加密解密——AES在JavaWeb项目中前台JS加密,后台Java解密的使用

    一:前言 在软件开发中,经常要对数据进行传输,数据在传输的过程中可能被拦截,被监听,所以在传输数据的时候使用数据的原始内容进行传输的话,安全隐患是非常大的.因此就要对需要传输的数据进行在客户端进行加密 ...

  9. RSA前台加密后台解密的应用

    写在前面 项目安全测试需要将登录功能修改, AES加密不符合要求, 现改为RSA非对称加密.(将登录密码加密后传给后台, 后台解密后再进行一系列的校验) .期间遇到了前台js加密但是后台解密失败的问题 ...

随机推荐

  1. [JavaWeb基础] 028.CSS简介和基础语法

    css 概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现 ...

  2. python 05—字典

    一.字典的键是唯一的 键:简单对象,例[字符串.整数.浮点数.bool值] list不能作为键,但可以作为值. 例: score = { '萧峰' : 95, '段誉' : 97, '虚竹' : 89 ...

  3. Java中的集合(五)继承Collection的List接口

    Java中的集合(五)继承Collection的List接口 一.List接口简介 List是有序的Collection的,此接口能够精确的控制每个元素插入的位置.用户能够根据索引(元素在List接口 ...

  4. pandas手册

    https://www.dataquest.io/blog/large_files/pandas-cheat-sheet.pdf

  5. 浅谈SIEM

    一.概念 SIEM ( Security Information Event Management,安全信息与事件管理) Gartner的定义:安全信息和事件管理(SIEM)技术通过对来自各种事件和上 ...

  6. leetcode976之三角形最大周长

    题目描述: 给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的.面积不为零的三角形的最大周长. 如果不能形成任何面积不为零的三角形,返回 0. def largePara(A): A. ...

  7. Rocket - util - Replacement

    https://mp.weixin.qq.com/s/zCP7wPuxgQ-r94Tr6BV5iw   简单介绍Replacement的实现.   ​​   1. 基本介绍   用于实现Cache替换 ...

  8. JavaScript (六) js的基本语法 - - - Math 及 Date对象、String对象、Array对象

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Math 1.Math对象的案例 var result= Math.max(10,20,30,40) ...

  9. Java实现 LeetCode 661 图片平滑器(暴力)

    661. 图片平滑器 包含整数的二维矩阵 M 表示一个图片的灰度.你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元 ...

  10. Java实现 LeetCode 200 岛屿数量

    200. 岛屿数量 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. ...