Skip to content

linys2333/Authorization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一些说明

用户名随意,测试密码:空

目录

§ 验证流程

§ 身份验证模块

§ 加密算法


§ 验证流程

登录流程


请求认证


退出登陆


§ 身份验证模块

.
├──Server/
│  ├──Common/
   │  ├── Authorization/
      │   ├── IToken.cs
          ├── JwtToken.cs
          ├── JwtAuth.cs
          ├── TokenConfig.cs
          ├── Exceptions.cs

懒得写了,详见IToken.cs


§ 加密算法

数据库存储格式:MD5( [原始密码] )

前端加密格式:MD5( MD5( [原始密码] ).[服务端随机串] ),用于登陆时传入后端

后端校验:[前端加密密码] == MD5( [数据库存储密码].[服务端随机串] )

【注意】:MD5和SHA-1被认为不再安全,微软推荐使用SHA-2系列(SHA-256、SHA-512等)加密算法( https://msdn.microsoft.com/zh-cn/library/92f9ye3s(v=vs.110).aspx#哈希值

Token对象构成:

    public class JwtToken : IToken
    {
        #region 服务端存储的信息,对客户端隐藏

        public 随机加密盐 Salt { get; set; }
        ...

        #endregion

        #region 提供给客户端的信息

        public 头部 Header { get; set; }
        public 载荷 Payload { get; set; }

        #endregion
    }

Token加密串:Base64Url( [Header] ).Base64Url( [Payload] ).Base64Url( HMAC( Base64Url( [Header] ).Base64Url( [Payload] ) , [Salt] ) )