栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

09-28晨讲 -- ElementUI使用 + MD5+ BCryptPasswordEncoder

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

09-28晨讲 -- ElementUI使用 + MD5+ BCryptPasswordEncoder

文章目录
  • 1. ElementUI
    • 1.1 介绍
    • 1.2 入门案例
    • 1.3 项目中使用vue
      • 1.3.1前端页面
      • 1.3.2效果展示
    • 1.4 工程方式引入vue
      • 1.4.1工程结构
      • 1.4.2起步
      • 1.4.3效果展示
  • 2. MD5介绍
  • 3. BCryptPasswordEncoder

1. ElementUI 1.1 介绍


1.2 入门案例

心法: ctrl+c + ctrl+v CV大法

首先需要引入组件(vue、elementui.js、elementui.css), 这里有两种方式, 先介绍第一种: 本地引入(通过标签), 此种方式可以在HTML页面中嵌入element 组件

注意: 通过此种方式引入, 默认不显示图标样式, 需另引入两个图标文件
项目结构如下:

1.3 项目中使用vue 1.3.1前端页面

1.3.2效果展示

1.4 工程方式引入vue

第二种引入方式: 工程引入, 首先需要通过脚手架工具创建 VUE 工程, 创建好工程后, 安装 element-ui 插件

1.4.1工程结构

1.4.2起步

第一步: 需要在 element.js 中 引入和声明 项目中所使用的标签

import Vue from 'vue'
import {
  Button,
  Form,
  FormItem,
  Input,
  Message,
  Container,
  Header,
  Main,
  Menu,
  Aside,
  Submenu,
  MenuItemGroup,
  MenuItem,
  Breadcrumb,
  BreadcrumbItem,
  Card,
  Row,
  Col,
  Table,
  TableColumn,
  Switch,
  Tooltip,
  Pagination,
  Dialog,
  MessageBox,
  Tag,
  Tree,
  Select,
  Option,
  Cascader,
	alert,
  Tabs,
  TabPane,
  Steps,
  Step,
  CheckboxGroup,
  Checkbox,
  Upload

} from 'element-ui'
Vue.use(Button)
Vue.use(Form)
Vue.use(FormItem)
Vue.use(Input)
Vue.use(Container)
Vue.use(Header)
Vue.use(Main)
Vue.use(Aside)
Vue.use(Menu)
Vue.use(Submenu)
Vue.use(MenuItemGroup)
Vue.use(MenuItem)
Vue.use(Breadcrumb)
Vue.use(BreadcrumbItem)
Vue.use(Card)
Vue.use(Row)
Vue.use(Col)
Vue.use(Table)
Vue.use(TableColumn)
Vue.use(Switch)
Vue.use(Tooltip)
Vue.use(Pagination)
Vue.use(Dialog)
Vue.use(Tag)
Vue.use(Tree)
Vue.use(Select)
Vue.use(Option)
Vue.use(Cascader)
Vue.use(alert)
Vue.use(Tabs)
Vue.use(TabPane)
Vue.use(Steps)
Vue.use(Step)
Vue.use(CheckboxGroup)
Vue.use(Checkbox)
Vue.use(Upload)

//将弹框组件挂载到Vue对象中 用户可以使用this关键字调用
Vue.prototype.$message = Message
//通过MessageBox函数定义 消息提示框
Vue.prototype.$confirm = MessageBox.confirm

第二步: 定义elementUI组件

第三步: 定义elementUI路由

第四步: 添加路由占位符

1.4.3效果展示

2. MD5介绍

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

	@Test
	void testMd5(){
	    //1.定义密码,盐
	    String password = "123456";
	    String salt = "www.tedu.cn";
	    //2.创建加密对象,对密码和盐进行不可逆hash加密
	    //md5算法对相同内容加密时都是相同的,并且不可逆
	    //md5算法对不同内容加密可能会出现相同结果吗?(可能,但几率很小)
	    String newPwd = DigestUtils.md5DigestAsHex((password + salt).getBytes());
	    //3.输出加密后的密码
	    System.out.println(newPwd);
	    System.out.println(newPwd.length());//32位
	    //说明:实际项目中md5盐要存储在数据库,登录时会基于用户名,将用户信息查询出来,
	    //并基于输入的密码和数据库查询出盐进行hash md5加密,再与数据库存储的密码进行
	    //比对,比对结果正确,则允许登录
	}
3. BCryptPasswordEncoder

Spring Security 中的BCryptPasswordEncoder方法采用SHA-256 +随机盐+密钥对密码进行加密。SHA系列是Hash算法,不是加密算法,使用加密算法意味着可以解密(这个与编码/解码一样),但是采用Hash处理,其过程是不可逆的。

	@Test
    void testBCryptEncode(){
        String password = "123456";
        //2.定义加密对象
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        //3.对密码进行加密(对密码基于随机盐进行hash不可逆加密)
        String newPwd = encoder.encode(password);
        System.out.println(newPwd);
        System.out.println(newPwd.length()); //60位
        //4.对密码进行匹配测试(匹配时底层会对密码再次进行加密)
        boolean flag = encoder.matches(password, newPwd);
        System.out.println("flag:" + flag); //true
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270946.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号