升级组件
This commit is contained in:
		
							parent
							
								
									5fc4020f46
								
							
						
					
					
						commit
						c820d37521
					
				@ -6,6 +6,7 @@ using FAuth.Models;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc;
 | 
			
		||||
using Microsoft.Extensions.Logging;
 | 
			
		||||
using FAuth.DataBase.Tables;
 | 
			
		||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
 | 
			
		||||
 | 
			
		||||
namespace FAuth.Controllers.api
 | 
			
		||||
{
 | 
			
		||||
@ -39,7 +40,7 @@ namespace FAuth.Controllers.api
 | 
			
		||||
        /// <returns>用户信息</returns>
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        [ProducesResponseType(typeof(UserInfo),200)]
 | 
			
		||||
        public UserInfo GetUserByTicket(string ticket) {
 | 
			
		||||
        public UserInfo GetUserByTicket([BindRequired]string ticket) {
 | 
			
		||||
            return new UserInfo {
 | 
			
		||||
                UserName = "aaa"
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										105
									
								
								FAuth/Extensions/Decryptor/EncryptyWorker.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								FAuth/Extensions/Decryptor/EncryptyWorker.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,105 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Security.Cryptography;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace FAuth.Extensions.Decryptor
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// 加密帮助类
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public class EncryptyWorker
 | 
			
		||||
    {
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 补位填充方式
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public PaddingMode Padding { get; set; }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 加密算法模式
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public CipherMode Cipher { get; set; }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 初始化向量
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public byte[] IV { get; set; }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 加密字符串获取Base64密文
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="key">加密key</param>
 | 
			
		||||
        /// <param name="str">要加密的字符串</param>
 | 
			
		||||
        public string Encrypty(string key,string str) {
 | 
			
		||||
            if(key.Length < 8) {
 | 
			
		||||
                throw new Exception("加密用的key长度为8位");
 | 
			
		||||
            }
 | 
			
		||||
            byte[] bKey = Encoding.UTF8.GetBytes(key.Substring(0,8));
 | 
			
		||||
            byte[] bStr = Encoding.UTF8.GetBytes(str);
 | 
			
		||||
            var desc = createProvider();
 | 
			
		||||
            using(var mStream = new MemoryStream()) {
 | 
			
		||||
                using(var cStream = new CryptoStream(mStream,desc.CreateEncryptor(bKey,IV),CryptoStreamMode.Write)) {
 | 
			
		||||
                    cStream.Write(bStr,0,bStr.Length);
 | 
			
		||||
                    cStream.FlushFinalBlock();
 | 
			
		||||
                    return Convert.ToBase64String(mStream.ToArray());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 从Base64密文解密,获取字符串
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="key">加密键</param>
 | 
			
		||||
        /// <param name="str">密文</param>
 | 
			
		||||
        public string DesCrypty(string key,string str) {
 | 
			
		||||
            if(key.Length < 8) {
 | 
			
		||||
                throw new Exception("加密用的key长度为8位");
 | 
			
		||||
            }
 | 
			
		||||
            var bStr = Convert.FromBase64String(str);
 | 
			
		||||
            byte[] bKey = Encoding.UTF8.GetBytes(key.Substring(0,8));
 | 
			
		||||
            var desc = createProvider();
 | 
			
		||||
            using(var mStream = new MemoryStream()) {
 | 
			
		||||
                using(var cStream = new CryptoStream(mStream,desc.CreateDecryptor(bKey,IV),CryptoStreamMode.Write)) {
 | 
			
		||||
                    cStream.Write(bStr,0,bStr.Length);
 | 
			
		||||
                    cStream.FlushFinalBlock();
 | 
			
		||||
                    return Encoding.UTF8.GetString(mStream.ToArray());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private DESCryptoServiceProvider createProvider() {
 | 
			
		||||
            var desc = new DESCryptoServiceProvider();
 | 
			
		||||
            desc.Padding = this.Padding;
 | 
			
		||||
            desc.Mode = this.Cipher;
 | 
			
		||||
            return desc;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static EncryptyWorker Deshelper { get; set; }
 | 
			
		||||
 | 
			
		||||
        private EncryptyWorker() { }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 重用模式获取默认加密帮助器
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static EncryptyWorker GetHelper() {
 | 
			
		||||
            if(Deshelper == null) {
 | 
			
		||||
                byte[] IV = { 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08 };
 | 
			
		||||
                Deshelper = GetHelper(PaddingMode.PKCS7,CipherMode.CBC,IV);
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            return Deshelper;
 | 
			
		||||
        }
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 生成新的加密帮助器
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="padding">补位方式</param>
 | 
			
		||||
        /// <param name="cipher">加密算法模式</param>
 | 
			
		||||
        /// <param name="IV">初始化向量</param>
 | 
			
		||||
        public static EncryptyWorker GetHelper(PaddingMode padding,CipherMode cipher,byte[] IV) {
 | 
			
		||||
            return new EncryptyWorker {
 | 
			
		||||
                Cipher = cipher,
 | 
			
		||||
                IV = IV,
 | 
			
		||||
                Padding = padding,
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk.Web">
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk.Web">
 | 
			
		||||
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <TargetFramework>netcoreapp3.1</TargetFramework>
 | 
			
		||||
@ -7,12 +7,12 @@
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Caching.Redis" Version="2.2.0" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.2" />
 | 
			
		||||
    <PackageReference Include="NLog" Version="4.6.8" />
 | 
			
		||||
    <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.0" />
 | 
			
		||||
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.1.0" />
 | 
			
		||||
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.2" />
 | 
			
		||||
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.2" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.3" />
 | 
			
		||||
    <PackageReference Include="NLog" Version="4.7.0" />
 | 
			
		||||
    <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.1" />
 | 
			
		||||
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.2.1" />
 | 
			
		||||
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.3" />
 | 
			
		||||
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.3" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user