博客园是国内最出名的IT从业者的技术交流社区。
博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。
不知为何,浏览博客园任何帖子都会跳转到整改公告,具体整改原因不详!也不晓得哪里违规了!不管怎么样,希望尽快完成整改,合规合法运营!
为了遵守相关法律法规,合法合规运营,网站进行全面整改,整改工作于2021年3月18日12:00开始,预计于3月25日11:59结束,整改期间全站无法发布任何内容,之前发布的内容重新审核后才能访问,由此给您带来很大的麻烦,请您谅解。
转载请注明:清风亦平凡 » 博客园整改...
4年前 (2021-03-21) 854℃ 0评论
13喜欢
因局域网源代码管理服务器地址做了变更,所以就重新更改下HOST文件中的IP地址。意外发现HOST文件中多了一条记录,而我对这条记录竟然没有一点印象。好奇怪!!!!哪来的呢?172.17.187.161 windows10.microdone.cn,其中IP172.17.187.161又是本地局域网。然后就通过浏览器尝试访问域名windows10.microdone.cn,结果根本无法连接,最后尝试了顶级域microdone.cn,这下就出现了内容。如下图所示:
我仔细回忆一下,自己最近几天究竟做了什么,好像也没有做什么呀!于是,我就在控制面板中打开程序和功能查看一下。最近几个月的程序安装记录,由安装时间来看,也没有太多内容。如下图所示:
我结合之前打开域名microdone.cn来看,这条HOST记录必然和中国邮政储蓄银行网上银行安全控件有关。看到了...
4年前 (2021-03-15) 1416℃ 0评论
7喜欢
背景
因有一个需求,需要在线浏览PDF文件。所以,需要找一个满足需求的解决方案。经过一些列资料搜寻,最终确定使用PDF.js插件。目前来说此插件完美满足需求。
PDF.js
一个通用的、基于web标准的、用于解析和呈现pdf的平台。
PDF.js项目在线预览效果
转载请注明:清风亦平凡 » 可以在线浏览PDF的一个WEB标准插件PDF.js...
4年前 (2021-03-01) 830℃ 0评论
24喜欢
Visual Studio Code 安装php插件后提示:
PHP executable not found. Install PHP 7 and add it to your PATH or set the php.executablePath setting
打开VS Code设置查找到php.validate.executablePath进行修改,其值是php安装目录。
{
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"java.semanticHighlighting.enabled": true,
"php...
4年前 (2021-01-07) 4010℃ 0评论
20喜欢
一年前的一个项目,有人反馈上传超时,超时原因是文件大小超出限制。由于原来维护项目的人员离开,现在上传超时的问题就有我来处理。解决方案也比较简单,就是切片上传。前端不想自己写了,就利用了上传组件,这个上传组件是百度的WebUploader。WebUploader这个组件被使用的也比较广泛,为了省事就用它啦!
上传中
合并后
代码实现
前端代码
前端上传以及分片使用的百度上传组件WebUploader
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
...
4年前 (2020-12-31) 2464℃ 0评论
8喜欢
由于客户突然要进行国产化的一个要求,数据库使用更换了国产的达梦数据库,将数据由Oracle数据库迁移到达梦数据库。所以,之前基于Oracle处理的一些功能就需要进行一些调整。
使用NuGet 引入达梦数据提供器DmProvider
引用相关的组件后,就按照套路对已经存在的方法进行相关调整,结果出现了一些编译出错且无论如何调整都无法消除。如下:
错误 CS1705 标识为“Dm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的程序集“Dm”所使用的“System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”版本高于所引用的标识为“System.Runtime, Version=4.1.2.0, ...
4年前 (2020-12-07) 1389℃ 0评论
3喜欢
一台Linux局域网服务器,突然发现不能访问外网,也许本来就不行,因为没有用到外网,所以只是没有注意到吧!经过测试外网无法访问,内网畅行无阻。如下:
[root@offline-200 services]# wget baidu.com–2020-11-03 17:56:58– http://baidu.com/正在解析主机 baidu.com (baidu.com)… 失败:未知的名称或服务。wget: 无法解析主机地址 “baidu.com”
[root@offline-200 services]# ping 192.168.2.3PING 192.168.2.3 (192.168.2.3) 56(84) bytes of data.64 bytes from 192.168.2.3: icmp_seq=1 ttl=128 time=0.3...
4年前 (2020-11-16) 1206℃ 0评论
1喜欢
背景
接手别人项目进行维护,使用Mysql 8.0 数据库正确还原,但是项目却无法启动,经过调试发现以下问题。
MySqlException Authentication method ‘caching_sha2_password’ not supported by any of the available plugins。
通常的报这个错误是因为它的身份验证方式是 mysql_native_password ,不是caching_sha2_password导致。
Mysql 官方相关资料:https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html
解决方法
首先找到MySql 8.0 的安装目录,看一下是否存在my...
4年前 (2020-10-05) 3714℃ 0评论
8喜欢
背景
因业务需求,需要与第三方进行融合登录。第三方融合登录接口有关于验签的要求,将解密的数据按照规定的顺序进行MD5进行签名验证并与提供的MD5签名作为对比。其加密的明文是Json字符串,解密后还原后要按照URl参数的形式进行排列进行MD5签名。
规定
加密参数(注:加密参数名称均为小写字母,没有使用驼峰法命名)
名称类型默认值简介sourceidString必传来源标识targetidString必传目标标识usercodeString必传用户唯一标识usernameString用户姓名idcardString身份证号码phoneString手机号码ounameString部门名称timeString必传当前时间戳,精确到毫秒
签名数据采用以上面表格顺序以及以下格式进行字段拼接
sourceid=skyfinder&targetid=sky&...
4年前 (2020-09-08) 932℃ 0评论
6喜欢
构建了自己常用的基础镜像,就打算推送到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...
4年前 (2020-09-03) 1441℃ 0评论
0喜欢
背景
因某些需求,需要与合作单位进行相应的数据交互,而交互均使用了加密方式处理并用MD5作为签名,以便校验传输内容是否遭到篡改。
MD5
md5是一种信息摘要算法,它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串,并且一个文件所对应的MD5摘要是固定的,当文件内容变化后,其MD5值也会不一样,因此,在应用中经常使用MD5值来验证一段数据有没有被篡改。
.NET CORE 实现MD5
以下简单实现,支持返回大小写、32位以及16位MD5字符串。
public static class EncryptionMd5
{
/// <summary>
/// md5加密
/// </summary>
/// <param name="conten...
4年前 (2020-09-02) 3012℃ 0评论
10喜欢
背景
因业务需求,需要与其他平台实现融合登录,根据提供融合登录方的文档内容,对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...
4年前 (2020-09-02) 2322℃ 0评论
1喜欢
因业务需求,需要进行融合登录,根据提供融合登录方的文档内容,对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...
4年前 (2020-09-01) 1006℃ 0评论
2喜欢
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年前 (2020-08-14) 2218℃ 0评论
8喜欢
使用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;
...
4年前 (2020-08-08) 2128℃ 2评论
8喜欢
保存镜像
docker save <myimagename>:<tag> | gzip > <myimagename>_<tag>.tar.gz
加载镜像
gunzip -c <myimagename>_<tag>.tar.gz | docker load
转载请注明:清风亦平凡 » Docker容器使用gzip压缩保存/加载镜像...
4年前 (2020-07-16) 1235℃ 0评论
13喜欢
背景
人生在世,都会遇到各种问题,就连写个博客也不得安宁。突然发现自己的博客被别人恶意的以框架(iframe/object)形式嵌入了, 这种网页被嵌入框架的情况很常见,只是这次是我罢了。其实我不太明白,为什么要选择个人博客嵌入。不管怎么样自己还是得做出点响应,要不然自己总是觉得缺了一些什么。
发现
这次发现也算一次偶然,突然想看看统计数据,所以就登录到了百度统计查看记录,结果就发现了一些比较奇怪的来源,所以就尝试访问看了看。大致如下:
打开来源后就晓得博客被人恶意嵌入了框架或者被恶意镜像了,经过查看网页代码,确认博客是被恶意嵌入了框架(iframe)。如下图:
观点
这是2008年开始在国内流行另一种流氓行为:使用框架(Frame),将你的网页嵌入它的网页中。只是现在改为了object,其实也是框架了。
其实用框...
4年前 (2020-06-24) 2246℃ 0评论
14喜欢
背景 由于某些原因需要临时处理一些问题,所以可能需要远程处理。最初使用的是TeamViewer远程控制软件,但是使用频繁会被限制。最后寻找了一个新的解决方案,就是使用内网穿透,而内网穿透的工具选择了FRP。本次内容最终目的是利用FRP可以使用微软系统自带的远程工具进行远程操作。
内网穿透
内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。
内网穿透应用场景
提供内网穿透服务连接内网服务器,在外网演示内网web站点无需服务器部署,快速调试本地程序,方便快速开发微信公众号和微信小程序支持http、https协议站点,省去证书中间件复杂配置,http协议站...
5年前 (2020-06-06) 1279℃ 0评论
9喜欢
我们很高兴地宣布,我们将为所有 GitHub 帐户提供具有无限协作功能的私人存储库。所有核心 GitHub 功能现在对每个人都是免费的。
到目前为止,如果您的组织希望将 GitHub 用于私人开发,您必须订阅我们的付费计划之一。但是地球上的每个开发人员都应该能够访问 GitHub。价格不应该是一个障碍。
这意味着团队现在可以在一个地方一起管理他们的工作:CI/CD、项目管理、代码评审、包等等。我们希望每个人都能在开发者喜欢的平台上发布优秀的软件。
需要高级功能(如代码所有者)、企业功能(如 SAML)或个性化支持的 eams 可以升级到我们的付费计划之一。
我们还将付费团队计划的价格从每个用户每月9美元降低到每个用户每月4美元,立即生效。现有客户的账单将自动减少。
在常见问题解答中了解更多信息,或在定价页面上比较计划。
原文地址:htt...
5年前 (2020-05-02) 780℃ 0评论
2喜欢
split命令
split可以指定按行数分割和按字节大小分割两种模式。
语法
split [--help][--version][-d][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
参数
参数说明-<行数>或-l<行数>指定每多少行就要切成一个小文件。-b<字节>指定每多少字就要切成一个小文件。支持单位:m,k-d分割使用数字后缀-C<字节>与-b参数类似,但切割时尽量维持每行的完整性。--help 显示帮助。--version显示版本信息--verbose显示分割进度
按行数
split -l 具体行数 -d 要分割的大文件 新文件名前...
5年前 (2020-04-17) 1017℃ 0评论
0喜欢
为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定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: grayscale(100%);
f...
5年前 (2020-04-04) 1046℃ 0评论
2喜欢
有些时候会在博客中分享一些拍摄的照片,而这些拍摄照片的大小均在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年前 (2020-04-03) 2717℃ 0评论
7喜欢
因某些原因,需要打开日志进行排查,本来是很简单的事情,当看到日之后就觉得力不从心。日志文件太大了,将近5G,自己电脑打不开这种大文件。一开始就想到了文件分割,然后就再网上找一些分割工具,找了几个分割工具杀毒软件都报毒。找工具也真是个麻烦的事情,找到半天没有见到一个合适的。其中一个不报毒(主动查杀了一次)的,双击后也打不开,这个时候我就怀疑自己中招(中毒)了,到底有没有中招暂时不太清楚,所以赶紧利用杀毒软件查杀病毒。在查杀病毒的期间自己就动手使用C#写一个简单的文本文件分割工具。这里就记录一下.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
namespace TxtFileCutAp...
5年前 (2020-04-03) 2035℃ 0评论
8喜欢
突然有一个需求,要求数组中数据在返回前进行随机打乱,于是就记录下来。
方法一
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年前 (2020-03-31) 4241℃ 0评论
8喜欢
因业务需求可能会导致数据存储结构发生变化,当数据保存到关系型数据库中时必将带来表结构的变化,这就涉及到对表中的列进行新增、修改、删除等操作。
在大多情况下数据库脚本执行必须是可重复的,因此对数据库表的任何表变动都需要进行判断,然而在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年前 (2020-03-31) 769℃ 0评论
3喜欢