Location via proxy:   
[Report a bug]   [Manage cookies]                

[置顶] 欢迎光临 ~\(≥▽≤)/~


这里只是一个编程、动漫、游戏爱好者的个人博客,所发布的不过是一些低端的小玩具,都是根据我个人需求而开发的东西,不可能尽善尽美,但我会尽量听取诸位的意见。

我的免费程序 | CLSO大百科 | CLSO.FUN导航
我的网络书签 | 我的公开源码库 | 我的油猴脚本 (需要先安装 Tampermonkey 这类脚本扩展)
联系方式: 站内留言 | Discord

- 阅读全文 -

【VB.NET】基于TOTP的二步验证登录实例,兼容谷歌、微软 Authenticator 等第三方验证器



TOTP 指的是 基于时间同步的一次性密码 (Time-Based One-Time Password,),它的原理是在服务器和用户的验证器应用中存储一个相同的 secretKey,当用户需要登录站点时,除了输入密码之外,还需要在验证器中调用一个临时的一次性密码。这个临时密码是基于时间而生成的,服务器与验证器会在同一时间生成相同的验证码。

二步验证虽然繁琐了一点,但是却可以防止他人恶意登录、或者暴力破解用户的账号。
目前已经有很多网站支持二步登录,甚至还有一些站点强制要求二步登录才可使用部分功能(比如Github)。
比较流行的验证器应用如 Google Authenticator、Microsoft Authenticator,基本都支持 TOTP 验证。

如果你的站点或应用程序也想要支持 TOTP 二步验证,该怎么做呢?

- 阅读全文 -

《崩坏:星穹铁道》所有常驻光锥推荐,以及商店可兑换角色、光锥的推荐


博主之前发表过原神常驻武器的推荐文章,作为一个崩铁原神两开花的咸鱼玩家,来向诸位新手玩家们推荐一下,在《崩坏:星穹铁道》中有哪些值得使用和升级的光锥(武器)。

首先,限定的五星光锥是肯定强于常驻池的光锥的,并且星铁的光锥池(武器池)保底不歪机率是75%,远远高于原神的37.5%,并且就算你不幸歪了,你下一发大保底也必定会出货,而原神的武器大保底最非得 三井 二井!

如果你是某个角色的单推人,并且有余力的情况下,下限定光锥池的收益是远远高于原神那种答辩💩武器池的!!!

但若是你手头不宽裕、又没做好抽卡规划,那么就可以跟随本篇文章,来选择如何培养光锥了。

- 阅读全文 -

【.NET】通用命令行解析类库 ClsoParameter


命令行是 Windows 系统启动程序时,向程序传递启动参数及讯息的一种方式。
控制台程序也是通过命令行来执行操作的,比如 cmd 或者 powershell 等。

.NET 程序拥有各种方法可以获得命令行参数,比如入口方法 Main(args)Environment.GetCommandLineArgs()、VB的 My.Application.CommandLineArgs() 等等……
可惜 .NET 只能将参数进行数组分割,并未内置对常见的命令行格式进行序列化解析的功能,一般情况下都需要我们自己对命令行进行解析。

一些常见的命令行格式,如:
-参数名="参数值"
/参数名="参数值"
无参数名的值

还有一些特殊规则的格式也较为常见,如:
--参数名 "参数值"
-参数名:参数值
"/带空格 的参数名"=" 带空格的 参数值 "
"/被引号包裹的参数名=参数值"

这些“奇形怪状”的命令行参数规则,其实都有一定的实用性和缘由,所以我自己写了一个解析类,尽最大努力来兼容这些命令行参数规则。

- 阅读全文 -

【.NET类库】ClsoINI 一个简单易用的 .NET INI配置文件读写库


我自己喜欢写点小程序,经常会需要保存一些配置与参数。
如果数据量比较多、比较杂乱,我还是推荐使用 JSON 格式 进行序列化存储,不需要自己关注太多,使用较为轻松。

然而若是程序比较小,存储的数据量不是很多的话,我个人经常使用的是INI配置文件。
INI这种文件十分古老,格式也非常简单,并且 Windows 系统内部就有读写INI的API,如 GetPrivateProfileStringWritePrivateProfileString
不过 GetPrivateProfileStringWritePrivateProfileString 这两个API接口并不支持读取内存中的数据,或者是文件流、网络流,所以在某些时候使用并不方便。
因此,我自己就写了一个自用的INI类库,方便自己更容易读写INI配置文件,同时也方便自己控制何时读取、从哪里读取、何时写入数据。

- 阅读全文 -

米哈游帐号切换器,支持原神、崩坏:星穹铁道、绝区零的账号切换和快速启动


以前玩原神比较沉迷,加之长草期特别长,所以养了几个小号,就有了在PC端快速切换账号的需求。
简单了解了一下原神的账号token保存方式,写了一个简单的小工具。
崩铁出来之后,发现这两个游戏的账号保存方法一样,就直接复制了一下代码,写了个崩铁的账号切换工具。
再随着绝区零的出现,所以是时候将之前写的两款小工具给整合到一起,再添加一个绝区零账号切换功能了!

- 阅读全文 -

如何在 .NET 中使用 JsonPath 查询 JSON 对象?


JSON 是什么?JsonPath 又是什么?

JSON(JavaScript Object Notation) 是一种数据结构,目前主要应用在 Web 应用以及数据存储,它属于 JavaScript 的子集,可以无缝与 JS 代码进行交互。
JS 是一种较为松散、自由的脚本语言,因此有人利用 JS 的匿名特性,将数据封装到 JS 的集合体中,设计出了 JSON 这种易于序列化和传输的数据格式。
因为 JSON 具有短小精悍、且易于读写和交互的特点,在网络端的应用早就打败了臃肿不堪的XML,成为了目前 Web 应用中的标准数据传输格式。

JSON 作为 JS 的子集,与 JS 代码交互完全没有任何壁垒,比如下方的示例:
// 一个JSON结构
var json = {
  "firstName": "Charles",
  "lastName": "Doe",
  "age": 41,
  "location": {
    "city": "San Fracisco",
    "postalCode": "94103"
  },
  "hobbies": [
    "chess",
    "netflix"
  ]
};

// 访问 JSON 对象
var fname = json['firstName']; //较为标准的访问方式,以集合来访问,用于某些不标准的命名方式
var lname = json.lastName; //也可以按属性名来访问,不过属性名不能超出JS的标准命名方式
var city = json.location.city; //等效 json['location']['city']
var hobby = json.hobbies[0]; //等效 json['hobbies'][0];

// 将JSON字符转换为JS对象
var jobj = JSON.parse('{"foo" : 1}'); //集合
var jobj = JSON.parse("[1, 2, 3, 4]"); //数组

// 将JS对象转换为JSON字符
var jtext = JSON.stringify([new Number(1), new String("false"), new Boolean(false)]);
// jtext = [1, "false", false]
虽然 JSON 在 JS 中非常易用,但如果你需要在本地应用程序中解析 JSON,有什么比较轻巧的方法吗?
答案自然就是 JsonPath!!!

- 阅读全文 -

.NET 如何使用 XPath 查询带有命名空间的XML文档,以及如何使用“奇巧”来忽略命名空间的限制


XML作为一种数据格式标准,深受某些“科技大厂”的推崇,特别是微软这个老毕登公司,几乎所有的文件格式都用的XML格式。
然而XML虽属于行业标准,但是其缺点跟微软一样——缓慢、笨重、繁琐,目前在大部分情况下,都已经被 JavaScript 的子集 JSON 给打败了。
虽然有着各种缺点,不过你还是得和XML打交道,同时也得踩中XML语法中的各种陷阱,其中之一就是命名空间(namespace)。

命名空间是XML的一种特性,当给TAG挂上一个xmlns属性后,即可为该标签及后续子标签添加指定的命名空间。
可是当你设定过命名空间后,再使用 XPath 语法查询XML文档时,若是没有指定正确的命名空间配置,则永远只会返回空的查询结果。

那么如何才能正确查询带有命名空间的XML文档呢?

- 阅读全文 -

【Follow】新世代的RSS订阅服务,突破信息茧房和信息壁垒,让你一站式阅览所有站点的资讯


RSS算是一项“古老”的互联网通信协议,站点可以通过RSS为用户或第三方的客户端、服务器提供内容更新资讯。
这样用户就不必打开站点的主页面,可以直接获取站点的更新提示,或者快速浏览其内容。
不过随着各类SNS的兴起,以及对于自身内容的保护,提供RSS订阅服务的站点已经越来越少了。

我曾经是个 Google Reader 的重度使用者,但随着 Reader 被谷歌关闭后,我也曾尝试过一些第三方的RSS订阅服务,然而这些订阅服务站点都有各种各样的问题和限制,导致我最终放弃了在线RSS阅读。

可随着时代的改变,各类资讯站点之间的壁垒越来越厚,搜索引擎愈加难以获取到有用、实时的讯息,甚至某些站点还禁止搜索引擎与非注册用户访问,我们的视野也随之变得狭窄,人人都被困在自己的信息茧房之中……

如今,Google Reader 的后继者中出现了一个名为 Follow.is 的新应用,它不仅可以突破某些站点不提供RSS的限制,甚至还可以将订阅源汇聚成集合列表,方便他人一键订阅,让你打破自己的茧房,见识更广阔的天空……

- 阅读全文 -

使用 Google Translate 为网页添加在线翻译功能


冲浪时偶尔发现了 Google Translate 提供的网页在线翻译服务,浏览了一下本站的在线翻译版本,发现谷歌的在线翻译质量非常不错,就想着能不能直接将这个功能加入到自己的博客中。

谷歌在线翻译站点的解析并不复杂,比如本站的欢迎文章网页为
https://blog-clso-fun.translate.goog/posts/welcome.html?_x_tr_sl=zh-CN&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=sc
子域的blog-clso-fun即是将本站域名的点换为横杠,而路径和查询参数与原版一致,只是查询参数多了一些翻译参数的设定,基本也不难猜。

所以花了5分钟,写了一个JS脚本库,为本站的博客添加了切换翻译版本的功能,同时也分享给各位使用。

- 阅读全文 -

使用 Magick.NET 在 .NET 程序中读取AVIF、HEIC、WEBP图片



随着科技的进步,越来越多新的、更先进的文件格式应运而生,就比如谷歌的 WebP 与苹果的 AVIF、HEIC 图片格式。
这些图片格式具有更高的压缩比、更低的图像精度损失,并且大部分先进的浏览器都已经支援这些新的格式。(Edge目前还不支持AVIF,垃圾微软!)
既然如此,那么该如何在 .NET 中处理这些新兴的图片格式呢? Magick.NET 类库或许可以帮你解决这些烦恼!

- 阅读全文 -

將頁面轉換爲繁體

Google Translate

公告

欢迎您光临鄙人的小站,虽然没什么太专业的东西,不过如果本站的文章能让您有所收获、或者仅仅是博您一笑,那么也不枉费我建站的辛苦了!

您可以使用邮件订阅来获得邮件更新提醒。

瞎哔哔

最新文章

随机文章

最近回复

分类

标签