加密算法

private static final byte[] DES_KEY = { 21, 1, -110, 82, -32, -85, -128, -65 };@SuppressWarnings("restriction")//加密算法public static String encryptBasedDes(String data) {String encryptedData = null;try {// DES算法要求有一个可信任的随机数源SecureRandom sr = new SecureRandom();DESKeySpec deskey = new DESKeySpec(DES_KEY);// 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey key = keyFactory.generateSecret(deskey);// 加密对象Cipher cipher = Cipher.getInstance("DES");cipher.init(Cipher.ENCRYPT_MODE, key, sr);// 加密,并把字节数组编码成字符串encryptedData = new sun.misc.BASE64Encoder().encode(cipher.doFinal(data.getBytes()));} catch (Exception e) {// log.error("加密错误,错误信息:", e);throw new RuntimeException("加密错误,错误信息:", e);}return encryptedData;}//解密算法@SuppressWarnings("restriction")public static String decryptBasedDes(String cryptData) {String decryptedData = null;try {// DES算法要求有一个可信任的随机数源SecureRandom sr = new SecureRandom();DESKeySpec deskey = new DESKeySpec(DES_KEY);// 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey key = keyFactory.generateSecret(deskey);// 解密对象Cipher cipher = Cipher.getInstance("DES");cipher.init(Cipher.DECRYPT_MODE, key, sr);// 把字符串进行解码,解码为为字节数组,并解密decryptedData = new String(cipher.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(cryptData)));} catch (Exception e) {throw new RuntimeException("解密错误,错误信息:", e);}return decryptedData;}

//注册功能@RequestMapping(value = "/register")public ModelAndView register(Management management) {ModelAndView mv = new ModelAndView();Management management1 =managementRepository.findByManagementPhone(management.getManagementPhone());List<Management> management2 = managementRepository.findAll();int lastpage=management2.size()/8;if (management1==null){management.setManagementPass(encryptBasedDes(management.getManagementPass()));managementRepository.save(management);}else {management.setManagementID(management1.getManagementID());management.setManagementPass(encryptBasedDes(management.getManagementPass()));managementRepository.save(management);}return new ModelAndView("redirect:/management/show?page="+lastpage);}

  

//登录
@RequestMapping(value = "/loginManagement")public ModelAndView login(Management management, HttpSession sessoin) {ModelAndView mv = new ModelAndView();//判断所输入账号密码是否匹配//如果匹配成功management.setManagementPass(encryptBasedDes(management.getManagementPass()));if (managementService.verifyManagement(management)) {//通过名字和密码找到该Management,并存进sessionManagement management1=managementRepository.findByManagementPhoneAndAndManagementPass(management.getManagementPhone(), management.getManagementPass()).get(0);sessoin.setAttribute("management", management1);//测试从session获取该Management判定权限Management test=(Management)sessoin.getAttribute("management");switch (management1.getManagementRole()){case  "1":mv.setViewName("");break;case "2":case "3":mv.setViewName("");break;}mv.setViewName("/success.btl");return mv;}//如果匹配不成功else {mv.setViewName("/login.btl");return mv;}

  

  

转载于:https://www.cnblogs.com/zhu573514187/p/9439403.html

登录注册的基本加密方法(可逆)相关推荐

  1. 简单CSS/HTML的动画登录注册网页[拳皇]

    简单CSS/HTML的动画登录注册网页[拳皇] 今天我们学习了过渡与动画效果,接下来将结合此方法呈现出来一个简单的CSS/HTML的登录注册网页. *同页面切换登录注册哦~ 页面截图 方法原理 [1] ...

  2. TCP聊天+传输文件服务器服务器套接字v2.6 - 登录注册界面更新 - loading界面应用

    TCP聊天+传输文件服务器服务器套接字v2.6 更改的地方: 主要是客户端界面更改 注册, 登录界面 (都知道啊, v1.8的改进后输入用户名, 到了主界面的时候才能输入密码, 但现在是直接输入用户名 ...

  3. 对于AES和RSA算法的结合使用以及MD5加盐注册登录时的密码加密

    RSA和AES结合使用 接上篇的RSA和AES算法加密之后,AES对称算法对数据量大的加密比较快,而RSA公私钥加密的话会影响加密效率,但是AES的加密与解密的密钥是一致的,导致密钥不能外泄,密钥在网 ...

  4. go 注册登录 mysql_golang实现用户登录注册的方法

    golang实现用户登录注册的方法 发布时间:2020-06-17 10:56:15 来源:亿速云 阅读:198 作者:Leah 这篇文章给大家分享的是golang实现用户登录注册的方法,相信大部分人 ...

  5. python做一个登录注册界面_python做一个登录注册界面的方法

    python做一个登录注册界面的方法 发布时间:2020-08-21 10:37:05 来源:亿速云 阅读:111 作者:小新 这篇文章主要介绍python做一个登录注册界面的方法,文中介绍的非常详细 ...

  6. 易语言注册机sign加密解决方法

    个人理解哈,一般大家看到的sign加密是md5的,为什么呢,因为很多网站不会自己写加密库,然后就是加密太难也没太大作用..废话不多说开始教大家怎么做... 以某网站为例哈... 先说明,很多时候我是不 ...

  7. 关于新版高校体育登录请求加密方法的逆向和再破解

    标题上为什么说是再破解呢?因为已经有某开源平台上的大牛给我们铺过路了,具体是哪位在这里就不说了,懂的人自然能找到.这位大牛也很久没有更新了,在高校体育的大更之后,原先的登陆方式已经失效了,事实上只要在 ...

  8. Java小案例——方法实现简单登录注册

    简单登录和注册 一.登录 1. 内容介绍 定义一个内置的账号和密码,写好账号输入.密码输入.随机验证码生成.验证码输入方法(3个输入方法没有使用重载)以及账号密码验证码比较方法.调用这些方法实现简单的 ...

  9. Android登录注册功能加密处理

    <Android使用OKhttp3实现登录注册功能+springboot搭建后端>这篇教程介绍了登录注册的流程及基本实现.但是有一些小问题.就是后端处理的时候,URL将用户名密码使用明文加 ...

最新文章

  1. Rocksdb 的优秀代码(二)-- 工业级 打点系统 实现分享
  2. jittor和pytorch生成网络对比之cogan
  3. RocketMQ错误消息重试策略之Consumer的重试机制(timeout情况)
  4. ReentrantReadWriteLock可重入读写锁分析
  5. Elasticsearch的Watcher插件
  6. 查询Linux的公网及内网IP
  7. FORTRAN里的SCALE函数
  8. 《人工智能 一种现代方法》第三版 第1章 概述 笔记摘录
  9. 计网实验二——以太帧、IP报文分析
  10. 502 (Bad Gateway) 原因及解决方法
  11. IDEA中好用的功能(不断更新中)
  12. 佳佳的筷子 Chopsticks
  13. AT指令介绍及用法,AT 指令集合
  14. 我国支付工具主要有哪几种
  15. 零序电流继电器器JL-8C-12-2-2
  16. 面对Spring Boot 3最低支持Java17如洪水猛兽袭来,何去何从
  17. 华为设备如何查看光模块的序列号?
  18. UeeShop 如何对接轮询系统
  19. 15. Eul的神圣法杖
  20. 爬取网易buff CSGO饰品数据 - 优化篇

热门文章

  1. 如何成为云原生时代的卓越架构师?
  2. 基于Flink+ClickHouse构建实时游戏数据分析最佳实践
  3. 温商机器人企业_7家温商企业上榜“中国企业500强”
  4. 【枭·音频】声随意动——浅谈《暗影火炬城》声音设计
  5. 浅聊程序化世界构建流程
  6. 小米回应将放弃“MI”字logo:不存在停止使用
  7. The requested URL /nagios/cgi-bin/statusmap.cgi was not found on this server
  8. Oracle 11g 数据统计量Pending处理
  9. jquery的$.extend和$.fn.extend作用及区别(—)
  10. 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)...