在要求输入邮箱的文本域,请填写真实的邮件地址。非真实邮件地址,将收不到回复信息。

 分类:代码世界

NET CORE将对象属性按照指定顺序输出

背景 因业务需求,需要与第三方进行融合登录。第三方融合登录接口有关于验签的要求,将解密的数据按照规定的顺序进行MD5进行签名验证并与提供的MD5签名作为对比。其加密的明文是Json字符串,解密后还原后要按照URl参数的形式进行排列进行MD5签名。 规定 加密参数(注:加密参数名称均为小写字母,没有使用驼峰法命名) 名称类型默认值简介sourceidString必传来源标识targetidString必传目标标识usercodeString必传用户唯一标识usernameString用户姓名idcardString身份证号码phoneString手机号码ounameString部门名称timeString必传当前时间戳,精确到毫秒 签名数据采用以上面表格顺序以及以下格式进行字段拼接 sourceid=skyfinder&targetid=sky&...

3天前 31℃ 0评论 0喜欢

推送Docker镜像被拒绝问题处理

构建了自己常用的基础镜像,就打算推送到Docker Hub上。首先使用docker login 进行登录,然后就使用docker push 执行镜像推送,最后返回错误信息如下: denied: requested access to the resource is denied 如下图: 在网上找了下相关信息,大部分都是说认证、登录等信息,按照相关信息试一试也没有什么用。最后发现是镜像名称不符合Docker规范,从而导致了镜像推送被拒绝。 推送的镜像命名规范如下: 登录名/镜像名称:标签 例如: skyfinder/microsoft-dotnet-2.1-aspnetcore-runtime-libgdiplus:latest 如果现有的镜像名称不符合规范,可以使用tag打一个标签,如下: docker tag skyfin...

1周前 (09-03) 22℃ 0评论 0喜欢

.NET CORE实现MD5加密

背景 因某些需求,需要与合作单位进行相应的数据交互,而交互均使用了加密方式处理并用MD5作为签名,以便校验传输内容是否遭到篡改。 MD5 md5是一种信息摘要算法,它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串,并且一个文件所对应的MD5摘要是固定的,当文件内容变化后,其MD5值也会不一样,因此,在应用中经常使用MD5值来验证一段数据有没有被篡改。 .NET CORE 实现MD5 以下简单实现,支持返回大小写、32位以及16位MD5字符串。 public static class EncryptionMd5 { /// <summary> /// md5加密 /// </summary> /// <param name="conten...

1周前 (09-02) 26℃ 0评论 0喜欢

.Net Core实现AES加解密

背景 因业务需求,需要与其他平台实现融合登录,根据提供融合登录方的文档内容,对AES加密解密相关内容使用.NET CORE来进行一次实现。以下记录实现AES加解密后的内容,便以后备用。 AES 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128 比特,密钥长度则可以是128、192或256比特;而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。包括AES-ECB、AES-C...

1周前 (09-02) 26℃ 0评论 0喜欢

Java实现AES加解密

因业务需求,需要进行融合登录,根据提供融合登录方的文档内容,对AES加密解密相关内容使用.NET CORE来进行一次实现。使用.NET CORE完成后,根据文档提到的密文进行解密,很遗憾解密无法完成。最终根据提供的Java文件进行相关确认,发现文档中所表述内容与Java示例文件中出现诸多不一致的地方。最后经过咨询并确认了以Java示例文件中的内容为准,所以此处记录一下这个AES加密解密的方法。 import java.security.Key; import java.util.Arrays; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; /** * AES加密工具类 * */ public...

1周前 (09-01) 20℃ 0评论 0喜欢

Windows 10 安装Apache

HTTP服务器Apache Apache HTTP Server Project是一项协作软件开发工作,旨在创建HTTP(Web)服务器的健壮,商业级,功能强大且可免费使用的源代码实现。该项目由世界各地的一组志愿者共同管理,使用Internet和Web进行通信,计划和开发服务器及其相关文档。该项目是Apache Software Foundation的一部分。另外,成百上千的用户为该项目贡献了想法,代码和文档。 Apache HTTP Server 下载 打开Apache HTTP Server官网:http://httpd.apache.org 点击Download 点击Files for Microsoft Windows链接 点击ApacheHaus 点击下载完成。 Apache HTTP Se...

4周前 (08-14) 21℃ 0评论 1喜欢

asp .net core 不使用构造函数获得注入的对象

使用asp .net core 2.1使用自带的依赖注入,自带的依赖注入是构造函数注入。有些情况,构造函数注入并不能满足需求,所以需要使用其他方法获取指定实例。 public interface IEngine { /// <summary> /// 类型构建 /// </summary> /// <param name="type"></param> /// <returns></returns> object Resolve(Type type); } public class GetEngine: IEngine { private IServiceProvider _serviceProvider; ...

1个月前 (08-08) 46℃ 2评论 1喜欢

Docker容器使用gzip压缩保存/加载镜像

保存镜像 docker save <myimagename>:<tag> | gzip > <myimagename>_<tag>.tar.gz 加载镜像 gunzip -c <myimagename>_<tag>.tar.gz | docker load 转载请注明:清风博客 » Docker容器使用gzip压缩保存/加载镜像...

2个月前 (07-16) 26℃ 0评论 12喜欢

网页被人恶意嵌入框架(iframe)的处理办法

背景 人生在世,都会遇到各种问题,就连写个博客也不得安宁。突然发现自己的博客被别人恶意的以框架(iframe/object)形式嵌入了, 这种网页被嵌入框架的情况很常见,只是这次是我罢了。其实我不太明白,为什么要选择个人博客嵌入。不管怎么样自己还是得做出点响应,要不然自己总是觉得缺了一些什么。 发现 这次发现也算一次偶然,突然想看看统计数据,所以就登录到了百度统计查看记录,结果就发现了一些比较奇怪的来源,所以就尝试访问看了看。大致如下: 打开来源后就晓得博客被人恶意嵌入了框架或者被恶意镜像了,经过查看网页代码,确认博客是被恶意嵌入了框架(iframe)。如下图: 观点 这是2008年开始在国内流行另一种流氓行为:使用框架(Frame),将你的网页嵌入它的网页中。只是现在改为了object,其实也是框架了。 其实用框...

3个月前 (06-24) 60℃ 0评论 11喜欢

使用frp搭建内网穿透

背景 由于某些原因需要临时处理一些问题,所以可能需要远程处理。最初使用的是TeamViewer远程控制软件,但是使用频繁会被限制。最后寻找了一个新的解决方案,就是使用内网穿透,而内网穿透的工具选择了FRP。本次内容最终目的是利用FRP可以使用微软系统自带的远程工具进行远程操作。 内网穿透 内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。 内网穿透应用场景 提供内网穿透服务连接内网服务器,在外网演示内网web站点无需服务器部署,快速调试本地程序,方便快速开发微信公众号和微信小程序支持http、https协议站点,省去证书中间件复杂配置,http协议站...

3个月前 (06-06) 75℃ 0评论 9喜欢

GitHub 现在对团队免费

我们很高兴地宣布,我们将为所有 GitHub 帐户提供具有无限协作功能的私人存储库。所有核心 GitHub 功能现在对每个人都是免费的。 到目前为止,如果您的组织希望将 GitHub 用于私人开发,您必须订阅我们的付费计划之一。但是地球上的每个开发人员都应该能够访问 GitHub。价格不应该是一个障碍。 这意味着团队现在可以在一个地方一起管理他们的工作:CI/CD、项目管理、代码评审、包等等。我们希望每个人都能在开发者喜欢的平台上发布优秀的软件。 需要高级功能(如代码所有者)、企业功能(如 SAML)或个性化支持的 eams 可以升级到我们的付费计划之一。 我们还将付费团队计划的价格从每个用户每月9美元降低到每个用户每月4美元,立即生效。现有客户的账单将自动减少。 在常见问题解答中了解更多信息,或在定价页面上比较计划。 原文地址:htt...

4个月前 (05-02) 64℃ 0评论 2喜欢

Linux系统下使用split分割大文件

split命令 split可以指定按行数分割和按字节大小分割两种模式。 语法 split [--help][--version][-d][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名] 参数 参数说明-<行数>或-l<行数>指定每多少行就要切成一个小文件。-b<字节>指定每多少字就要切成一个小文件。支持单位:m,k-d分割使用数字后缀-C<字节>与-b参数类似,但切割时尽量维持每行的完整性。--help 显示帮助。--version显示版本信息--verbose显示分割进度 按行数 split -l 具体行数 -d 要分割的大文件 新文件名前...

5个月前 (04-17) 92℃ 0评论 0喜欢

CSS层叠样式表实现全站灰度(grayscale )

为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定2020年4月4日举行全国性哀悼活动。在此期间,全国和驻外使领馆下半旗志哀,全国停止公共娱乐活动。4月4日10时起,全国人民默哀3分钟,汽车、火车、舰船鸣笛,防空警报鸣响。而各大网站均实现全站灰度,腾讯视频、爱奇艺停止所有娱乐类型视频入口。 实现全站灰度可以使用CSS或者使用其他JS插件处理,例如:grayscale js。本博使用的是CSS处理全站灰度,代码示例如下: html { -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter:progid:DXImageTrans...

5个月前 (04-04) 78℃ 0评论 0喜欢

C#实现图片压缩

有些时候会在博客中分享一些拍摄的照片,而这些拍摄照片的大小均在1.5M以上,随随便便分享点图片占用的存储空间就有点惊人。为了节省存储空间,避免尽早将剩余存储空间消耗完毕,所以就考虑压缩一下图片。这里来做下记录。 using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; namespace ImageCompress { class Program { static void Main(string[] args) { string path = $"{Path.Combine(Directory.GetCurrentDirectory(), "image")}"; Compre...

5个月前 (04-03) 94℃ 0评论 2喜欢

C#实现大文本文件切割/分割

因某些原因,需要打开日志进行排查,本来是很简单的事情,当看到日之后就觉得力不从心。日志文件太大了,将近5G,自己电脑打不开这种大文件。一开始就想到了文件分割,然后就再网上找一些分割工具,找了几个分割工具杀毒软件都报毒。找工具也真是个麻烦的事情,找到半天没有见到一个合适的。其中一个不报毒(主动查杀了一次)的,双击后也打不开,这个时候我就怀疑自己中招(中毒)了,到底有没有中招暂时不太清楚,所以赶紧利用杀毒软件查杀病毒。在查杀病毒的期间自己就动手使用C#写一个简单的文本文件分割工具。这里就记录一下. using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Threading.Tasks; namespace TxtFileCutAp...

5个月前 (04-03) 96℃ 0评论 0喜欢

C#随机打乱List数组中项的顺序

突然有一个需求,要求数组中数据在返回前进行随机打乱,于是就记录下来。 方法一 public static void ListRandom<T>(List<T> sources) { Random rd = new Random(); int index = 0; T temp; for (int i = 0; i < sources.Count; i++) { index = rd.Next(0, sources.Count - 1); if (index != i) { ...

5个月前 (03-31) 114℃ 0评论 1喜欢

MySQL新增/修改/删除表中的列

因业务需求可能会导致数据存储结构发生变化,当数据保存到关系型数据库中时必将带来表结构的变化,这就涉及到对表中的列进行新增、修改、删除等操作。 在大多情况下数据库脚本执行必须是可重复的,因此对数据库表的任何表变动都需要进行判断,然而在MySQL数据库中通过SQL脚本进行列的变更就不太便利。下面记录一下曾经用到的一些MySQL脚本: USE DATABASE NAME; -- 这里要换数据库名称 DROP PROCEDURE IF EXISTS Operate_ColumnADD_Update_Delete; DELIMITER$$ -- 1表示新增列,2表示修改列类型,3表示删除列 CREATE PROCEDURE Operate_ColumnADD_Update_Delete(TableName VARCHAR(50),ColumnName VARCHAR(50)...

5个月前 (03-31) 70℃ 0评论 2喜欢

Linux Centos 7更换国内源

由于Linux Centos 官方的源在国外服务器, 使用官方源速度慢的出奇,所以要更换为国内的源,于是有了以下内容。 首先备份原有Linux Centos 7的源/etc/yum.repos.d/CentOS-Base.repo。 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 某些Centos镜像安装后可能没有wget,可以尝试curl 进行操作,如下 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.al...

7个月前 (02-27) 88℃ 0评论 0喜欢

hyper-v虚拟机安装Linux Centos 7 网络配置

hyper-v虚拟机安装了centos7之后并不能上网,有些测试就无法继续进行,接下来就需要进行一些配置。 新建虚拟交换机 下图紧接着2、3、4步。 设置名称并设置连接类型。 设置网络适配器。 启动虚拟机系统Centos并登录, 进入到network-scripts目录 。 cd /etc/sysconfig/network-scripts vi ifcfg-eth0 将ONBOOT=no改为 ONBOOT=yes保存后重启网络。 systemctl restart network 转载请注明:清风博客 » hyper-v虚拟机安装Linux Centos 7 网络配置...

7个月前 (02-26) 94℃ 0评论 0喜欢

Linux中退出vi编辑模式

点击ESC进入“正常模式”,然后输入“:”,进入“命令模式”。此时屏幕的下方会出现一个冒号,你可以输入以下命令,并按“ENTER”执行: :q 退出(:quit的缩写) :q! 退出且不保存(:quit!的缩写) :w 保存文件但不退出vi :w file 将修改另外保存到file中,不退出vi :w! 强制保存,不退出vi :wq 保存并退出 :wq! 保存并退出即使文件没有写入权限(强制保存退出) :x 保存并退出(类似:wq,但是只有在有更改的情况下才保存) :exit 保存并退出(和:x相同) :qa 退出所有(:quitall的缩写) :cq 退出且不保存(即便有错误) 转载请注明:清风博客 » Linux中退出vi编辑模式...

7个月前 (02-24) 104℃ 0评论 0喜欢

下载Linux CentOS系统镜像

在学习或者工作当中,很大机率用到CentOS系统。在此之前使用centos基本上都是阿里、腾讯云的虚拟机,并没有下载镜像到本地进行安装部署。由于某些需求,需要下载centos系统镜像,之后要在虚拟机上进行安装测试一些内容,所以就找了下镜像。 CentOS CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS完全开源。 官网下载 Centos官网地址 官方网站下载的确可行,但不建议在官方网站进行下...

7个月前 (02-23) 98℃ 0评论 0喜欢

使用C#通过NTP同步本地Windows系统时间

每年春节买票都成为相当重要的事情,快人一步基本能尽可能的抢占先机。使用抢票软件尽可能的减少手工操作,从而提高抢票的成功机率,由于时间误差也可会丧失先机,所以同步系统时间也是重要一步。为了可以自动的同步本地时间,所以就使用C#实现一个时间同步小工具。 只针对Windows系统的时间同步且使用抢票平台的不在此列。 using System; using System.Net; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks; namespace WindowsDateTimeSynchronization { public class Da...

7个月前 (02-08) 119℃ 0评论 0喜欢

基于缓存系统的描述

简介 缓存的工作机制是先从缓存中读取数据,如果没有,再从慢速设备上读取实际数据并同步到缓存。计算机系统里天然就存在多级缓存系统,这是由于不同的硬件设备的访问速度以及容量大小不一致引起的一个选择。比如,CPU到L1/L2/L3到内存到磁盘的访问方式就是一个典型的多级缓存的例子。当CPU需要数据的时候,它首先到L1里找,如果没有找到,则查找L2/L3,如果还是没有找到,则再到内存里找,如果还没有,再到磁盘里查找。不同层级的缓存的访问速度和容量大小各不相同,简要对比如下所示: 名称 访问速度 通常容量大小 L1 1.3纳秒 12组每组32KB数据加32KB代码 L2 3.92纳秒 32组每组256KB L3 11.11纳秒 30MB DDR4 内存 ...

8个月前 (01-16) 113℃ 0评论 0喜欢

ASP.NET Core 配置跨域(CORS)

由于项目中需要实时消息,所以就使用了ASP.NET(Core) SignalR实时通讯库。因为业务服务与通讯服务是独立的,所以涉及到跨域的问题, 浏览器抛出的异常非常明显,这个是明显跨域相关内容。 报错信息如下: Access to XMLHttpRequest at ‘http://192.168.2.13:5005/api/v1/commommessage/messageHub/negotiate’ from origin ‘http://127.0.0.1:5500’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control...

8个月前 (01-13) 407℃ 0评论 14喜欢

Newtonsoft.Json序列化对象时循环引用异常处理

因某些需求,需要将指定的对象序列化放到缓存中,在使用Newtonsoft.Json序列化时候报错,异常信息清晰明显就是循环引用问题。具体错误如下: 详细异常如下: fail: System.Exception[-2146233088] Self referencing loop detected for property ‘Ancestor’ with type ”. Path ‘Descendants[0]’. Newtonsoft.Json.JsonSerializationException: Self referencing loop detected for property ‘Ancestor’ with type ‘*’. Path &...

8个月前 (01-11) 157℃ 0评论 0喜欢