当前位置: 首页 > news >正文

给自己的网站做软件测试 步骤微信社群营销

给自己的网站做软件测试 步骤,微信社群营销,靠谱网站建设公司怎么选,网站开发语言查看目录 一、背景 二、传统登陆功能&强制登陆功能 1、传统的实现方式 2、session存在的问题 三、jwt--令牌技术 1、实现过程 2、令牌内容 3、生成令牌 4、检验令牌 四、JWT登陆功能&强制登陆功能 1、JWT实现登陆功能 2、强制登陆功能 3、运行效果 五、加密/加…

目录

一、背景

二、传统登陆功能&强制登陆功能

1、传统的实现方式

 2、session存在的问题

三、jwt--令牌技术

1、实现过程

2、令牌内容

3、生成令牌

4、检验令牌

四、JWT登陆功能&强制登陆功能

1、JWT实现登陆功能

2、强制登陆功能

3、运行效果

五、加密/加盐

1、加密方式

2、基于MD5的加密

(1)MD5弊端

(2)加盐

(3)生成加密密码

六、博客系统部分代码

一、背景

现已经完成了博客系统的发布博客功能更新博客功能显示博客列表页功能显示详情页功能删除博客功能退出博客登陆功能,还有登陆功能强制登陆功能还未实现。前面已完成的功能主要使用了mybatis的增、改、查等功能,和前面的图书系统较为相似,此处不再做详细介绍,文章结尾附上主要代码。

二、传统登陆功能&强制登陆功能

1、传统的实现方式

客户端输入密码和用户名--->服务器根据用户名去数据库查找密码--->数据库密码和用户密码进行比较--->相同完成登陆并将内容存储在session中--->强制登陆时判断有无session即可。

 2、session存在的问题

但此时这种方法会存在问题:

(1)为了保证项目不因为一个服务器挂了,我们通常会采用多机部署项目,试想一下,若登陆请求我们发送给了服务器1,服务器1正确响应并在内存中保存了session信息,将sessionId通过Cookie发送给客户端。客户端在登陆的前提下带着SessionId再次进行其他请求,此时若将请求发送给了服务器2,服务器2根据sessionId查找session信息,发现服务器2没有保存,此时就会认为客户端未登陆,但其实客户端在服务器1上已经登陆了。session实现强制登陆时,不能满足多机部署。

(2)在重启服务器时,session信息就没了,若用户刚登录服务器重启了,此时就会要求用户重新登陆,带来不好的用户体验。

(3)用户的session信息都保存在服务器内存中,若用户很多,session信息就多,占用的内存就大,导致服务器挂掉的风险也大。

三、jwt--令牌技术

1、实现过程

客户端输入密码和用户名--->服务器根据用户名去数据库查找密码--->数据库密码和用户密码进行比较--->相同完成登陆并给客户端一个令牌--->强制登陆时服务器判断有无令牌即可,且令牌内容不能改变,若改变就失效了。

2、令牌内容

令牌包含三部分的内容:

(1)Header---头部

头部包含jwt使用的算法(如HS256)以及jwt的类型。

(2)Payload---负载

负载是存放有效信息的地方,类似session,可以自定义,也可以存放令牌过期时间。此部分可以解码还原原始内容。

(3)Signature---签名

签名部分可以防止jwt内容被篡改,签名是基于头部和载荷计算得出的,同时也使用了安全密钥进行加密,若jwt中任何一个字符改变,进行验证时以同样的密钥签名头部和载荷,发现两次签名不同,就会导致令牌失效。jwt的内容可以公布,不是进行了加密,而是保证了唯一性,防止被篡改。(类似于身份证)。

3、生成令牌

先引入依赖:

生成的jwt内容为:

eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJsaXNpIiwiaWF0IjoxNzEwNTc2NjcwLCJleHAiOjE3MTA1ODAyNzB9.FQQTi586Wp_9S-tCjO1rmHhHqSuFWdkXF3KlLcotgFU

解析该jwt:

4、检验令牌

运行结果:

只要结果不为空就表明令牌是正确的。

四、JWT登陆功能&强制登陆功能

1、JWT实现登陆功能

后端处理:

前端请求+响应:

2、强制登陆功能

使用拦截器进行强制登陆,判断用户令牌是否正确。从本地存储中拿出令牌放在请求header中,根据拿到的内容判断是否能拿到负载内容。

由于每个页面都要进行强制登陆判断,所以将从本地存储中拿出令牌放在请求header中的操作统一放在common.js中,且要在发送请求前放在header中:

3、运行效果

此时就能正确显示博客列表页了。

五、加密/加盐

对于数据库中的敏感信息:例如密码等,需要对其加密,不然黑客入侵后就会获取到用户的密码,造成一定的损失。

1、加密方式

(1)对称加密

对于明文的加密和密文的解密使用的是同一种密钥。常见算法有:AES,DES,3DES,RC4,RC5,RC6

(2)非对称加密

明文的加密采用公钥,密文的解密采用私钥。公钥可以公开,私钥不可以公开。常见算法有:RSA,DSA,ECDSA,ECC;

(3)摘要加密

将任意长度的明文转为固定长度的数据,不可逆,无法解密。对于相同的明文,进行摘要加密后结果相同。常见算法有:MD5,SHA1,SHA2,CRC。

2、基于MD5的加密
(1)MD5弊端

博客系统采用MD5加密方式,将密码转换为固定长度的数据。但只使用MD5存在弊端:

①虽然MD5不可逆,但对于密码较短的,可以借助工具进行解密;

②密码一样的用户,MD5转换后是一样的,一旦一个用户暴露,其他也会暴露。

(2)加盐

可以对于密码加上固定长度的随机值(盐值),明文+盐值---->进行MD5加密。

还需考虑一个问题:在进行验证时,我们如何拿到盐???

可以将盐值插入在MD5加密后的数据里,验证时分离出加密结果和盐值即可。

为了简单:我们就直接将盐值拼接在加密结果后面了。

(3)生成加密密码

将数据库修改为:

进行登陆验证:

六、博客系统部分代码

1、登陆功能

(1)客户端请求+响应

(2)服务器响应

2、展示博客列表功能

(1)客户端请求+响应

(2)服务器响应

3、展示博客详情功能

(1)客户端请求+响应

(2)服务器响应

4、更新博客功能

(1)客户端请求+响应

(2)服务器响应

5、删除博客功能

(1)客户端请求+响应

(2)服务器响应

6、发布博客功能

(1)客户端请求+响应

(2)服务器响应

7、退出博客登陆

8、强制登陆功能

若需要全部源码,可以进入:葛雅宁 (ge-yaning) - Gitee.com

点击java学习下的基于spring下的博客管理系统:

http://www.fp688.cn/news/165100.html

相关文章:

  • 做网站需要 的文档百度模拟点击
  • 长沙制作手机网站的公司百度账号注册
  • 建设银行网站查看完整卡号怎么知道网站有没有被收录
  • 一键优化ppt关键词优化是什么意思?
  • 太原建设网站制作百度百度网址大全
  • 网站建设成本预算湖南 seo
  • 做一个网站多少钱关键对话
  • 有什么网站做可以国外的生意武汉疫情最新动态
  • 哪里有做网站的教程seo 服务
  • c to c网站开发怎么弄推广广告
  • 邯郸企业网站建设惠州seo报价
  • 外包网络推广公司东莞网站优化公司哪家好
  • 物业公司网站模板中央新闻联播
  • 甘肃住房和城乡建设部网站百度推广客户端mac版
  • 乌鲁木齐网站外包seo整站优化外包
  • 手机销售网站的建设九江seo优化
  • 中国十大公司企业文化搜索引擎优化有哪些要点
  • 南宁网站设计全网营销推广
  • 无锡优化网站排名怎么样做免费的百度seo
  • 专业网吧装修设计公司西安seo外包平台
  • 外贸网站建设哪家有名百度帐号登录入口
  • 傻瓜式做网站网站关键词搜索排名
  • 赣州培训网站开发网络推广的含义
  • wordpress添加网易云音乐播放器百度seo优
  • 嘉兴地区有人做网站吗东莞网站建设快速排名
  • 临沂专业网站建设公司哪家好地推接单平台找推网
  • 杭州设计 公司 网站北京网站推广排名外包
  • 青岛网站建设在哪今日小说排行榜百度搜索风云榜
  • 自己的品牌怎么推广加盟seo学院培训班
  • 深圳建站公司一般需要多久电商运营怎么自学