[置顶] 欢迎光临 ~\(≥▽≤)/~
这里只是一个编程、动漫、游戏爱好者的个人博客,所发布的不过是一些低端的小玩具,都是根据我个人需求而开发的东西,不可能尽善尽美,但我会尽量听取诸位的意见。
我的免费程序 | CLSO大百科 | CLSO.FUN导航
我的网络书签 | 我的公开源码库 | 我的油猴脚本 (需要先安装 Tampermonkey 这类脚本扩展)
联系方式: 站内留言 | Discord
- 阅读全文 -
这里只是一个编程、动漫、游戏爱好者的个人博客,所发布的不过是一些低端的小玩具,都是根据我个人需求而开发的东西,不可能尽善尽美,但我会尽量听取诸位的意见。
我的免费程序 | CLSO大百科 | CLSO.FUN导航
我的网络书签 | 我的公开源码库 | 我的油猴脚本 (需要先安装 Tampermonkey 这类脚本扩展)
联系方式: 站内留言 | Discord
- 阅读全文 -
TOTP 指的是 基于时间同步的一次性密码 (Time-Based One-Time Password,),它的原理是在服务器和用户的验证器应用中存储一个相同的 secretKey
,当用户需要登录站点时,除了输入密码之外,还需要在验证器中调用一个临时的一次性密码。这个临时密码是基于时间而生成的,服务器与验证器会在同一时间生成相同的验证码。
二步验证虽然繁琐了一点,但是却可以防止他人恶意登录、或者暴力破解用户的账号。
目前已经有很多网站支持二步登录,甚至还有一些站点强制要求二步登录才可使用部分功能(比如Github)。
比较流行的验证器应用如 Google Authenticator、Microsoft Authenticator,基本都支持 TOTP 验证。
如果你的站点或应用程序也想要支持 TOTP 二步验证,该怎么做呢?
- 阅读全文 -
博主之前发表过原神常驻武器的推荐文章,作为一个崩铁原神两开花的咸鱼玩家,来向诸位新手玩家们推荐一下,在《崩坏:星穹铁道》中有哪些值得使用和升级的光锥(武器)。
首先,限定的五星光锥是肯定强于常驻池的光锥的,并且星铁的光锥池(武器池)保底不歪机率是75%,远远高于原神的37.5%,并且就算你不幸歪了,你下一发大保底也必定会出货,而原神的武器大保底最非得 三井 二井!
如果你是某个角色的单推人,并且有余力的情况下,下限定光锥池的收益是远远高于原神那种答辩💩武器池的!!!
但若是你手头不宽裕、又没做好抽卡规划,那么就可以跟随本篇文章,来选择如何培养光锥了。
- 阅读全文 -
命令行是 Windows 系统启动程序时,向程序传递启动参数及讯息的一种方式。
控制台程序也是通过命令行来执行操作的,比如 cmd 或者 powershell 等。
.NET 程序拥有各种方法可以获得命令行参数,比如入口方法 Main(args)
、Environment.GetCommandLineArgs()
、VB的 My.Application.CommandLineArgs()
等等……
可惜 .NET 只能将参数进行数组分割,并未内置对常见的命令行格式进行序列化解析的功能,一般情况下都需要我们自己对命令行进行解析。
一些常见的命令行格式,如:-参数名="参数值"
/参数名="参数值"
无参数名的值
还有一些特殊规则的格式也较为常见,如:--参数名 "参数值"
-参数名:参数值
"/带空格 的参数名"=" 带空格的 参数值 "
"/被引号包裹的参数名=参数值"
这些“奇形怪状”的命令行参数规则,其实都有一定的实用性和缘由,所以我自己写了一个解析类,尽最大努力来兼容这些命令行参数规则。
- 阅读全文 -
我自己喜欢写点小程序,经常会需要保存一些配置与参数。
如果数据量比较多、比较杂乱,我还是推荐使用 JSON 格式 进行序列化存储,不需要自己关注太多,使用较为轻松。
然而若是程序比较小,存储的数据量不是很多的话,我个人经常使用的是INI配置文件。
INI这种文件十分古老,格式也非常简单,并且 Windows 系统内部就有读写INI的API,如 GetPrivateProfileString
和 WritePrivateProfileString
。
不过 GetPrivateProfileString
和 WritePrivateProfileString
这两个API接口并不支持读取内存中的数据,或者是文件流、网络流,所以在某些时候使用并不方便。
因此,我自己就写了一个自用的INI类库,方便自己更容易读写INI配置文件,同时也方便自己控制何时读取、从哪里读取、何时写入数据。
- 阅读全文 -
以前玩原神比较沉迷,加之长草期特别长,所以养了几个小号,就有了在PC端快速切换账号的需求。
简单了解了一下原神的账号token保存方式,写了一个简单的小工具。
崩铁出来之后,发现这两个游戏的账号保存方法一样,就直接复制了一下代码,写了个崩铁的账号切换工具。
再随着绝区零的出现,所以是时候将之前写的两款小工具给整合到一起,再添加一个绝区零账号切换功能了!
- 阅读全文 -
// 一个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,有什么比较轻巧的方法吗?- 阅读全文 -
XML作为一种数据格式标准,深受某些“科技大厂”的推崇,特别是微软这个老毕登公司,几乎所有的文件格式都用的XML格式。
然而XML虽属于行业标准,但是其缺点跟微软一样——缓慢、笨重、繁琐,目前在大部分情况下,都已经被 JavaScript 的子集 JSON 给打败了。
虽然有着各种缺点,不过你还是得和XML打交道,同时也得踩中XML语法中的各种陷阱,其中之一就是命名空间(namespace)。
命名空间是XML的一种特性,当给TAG挂上一个xmlns
属性后,即可为该标签及后续子标签添加指定的命名空间。
可是当你设定过命名空间后,再使用 XPath 语法查询XML文档时,若是没有指定正确的命名空间配置,则永远只会返回空的查询结果。
那么如何才能正确查询带有命名空间的XML文档呢?
- 阅读全文 -
RSS算是一项“古老”的互联网通信协议,站点可以通过RSS为用户或第三方的客户端、服务器提供内容更新资讯。
这样用户就不必打开站点的主页面,可以直接获取站点的更新提示,或者快速浏览其内容。
不过随着各类SNS的兴起,以及对于自身内容的保护,提供RSS订阅服务的站点已经越来越少了。
我曾经是个 Google Reader 的重度使用者,但随着 Reader 被谷歌关闭后,我也曾尝试过一些第三方的RSS订阅服务,然而这些订阅服务站点都有各种各样的问题和限制,导致我最终放弃了在线RSS阅读。
可随着时代的改变,各类资讯站点之间的壁垒越来越厚,搜索引擎愈加难以获取到有用、实时的讯息,甚至某些站点还禁止搜索引擎与非注册用户访问,我们的视野也随之变得狭窄,人人都被困在自己的信息茧房之中……
如今,Google Reader 的后继者中出现了一个名为 Follow.is 的新应用,它不仅可以突破某些站点不提供RSS的限制,甚至还可以将订阅源汇聚成集合列表,方便他人一键订阅,让你打破自己的茧房,见识更广阔的天空……
- 阅读全文 -
冲浪时偶尔发现了 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脚本库,为本站的博客添加了切换翻译版本的功能,同时也分享给各位使用。
- 阅读全文 -
随着科技的进步,越来越多新的、更先进的文件格式应运而生,就比如谷歌的 WebP 与苹果的 AVIF、HEIC 图片格式。
这些图片格式具有更高的压缩比、更低的图像精度损失,并且大部分先进的浏览器都已经支援这些新的格式。(Edge目前还不支持AVIF,垃圾微软!)
既然如此,那么该如何在 .NET 中处理这些新兴的图片格式呢? Magick.NET 类库或许可以帮你解决这些烦恼!
- 阅读全文 -