Timmoc 的技术小屋

Timmoc 的技术小屋

这里记录技术笔记与日常思考,欢迎常来逛逛 👋

Shamir 秘密共享方案

Shamir 秘密共享方案 这是个好玩的东西。简单的讲,就是某个数字例如K=77,可以分成5个,只有3个人都选择恢复这个数字才能恢复这个数字。 这能干的事情就很多了。 至于详细地说。。。看下面: 基本原理 Shamir 秘密共享方案是一种基于多项式插值原理的密码学技术,由 Adi Shamir 在 20 世纪 70 年代提出。其核心思想是将一个秘密数据分割成多个份额,只有当足够数量的参与者(达到一个预设的阈值)将他们的份额组合在一起时,才能重建出原始秘密。 详细步骤 构造多项式 选择一个有限域 GF(q),其中 q 是一个素数,且要大于最大的秘密值和参与者的数量。 构造一个 k−1 次多项式 f(x)=a₀+a₁x+a₂x²+…+a_{k−1}x^{k−1},其中 a₀ 为秘密,a₁,a₂,…,a_{k−1} 是在有限域内随机选择的系数。 生成份额 对于每个参与者 i(1≤i≤n),计算该多项式在 x=i 处的值,即份额 s_i=f(i),然后将这些份额分发给各个参与者。 ...

May 14, 2025 · 2 min

新服务器配置

拿到一台服务器应该要做什么 去京东云那边抢了一台活动服务器。 啧,京东这边我还错怪他了,原来这能抢到啊? 也可能是因为看我连续访问了好N次网站都不下单,偷偷给我改有存货了。 管他呢,反正抢到了就是抢到了。 CPU:有就行 内存:有就行 网络:有就行(点名阿里云的活动扣扣嗖嗖的,网络还要单独买,其他送网络的要么就是要加钱要么就是三个月,要不然就是99同价不允许叠加其他折扣,懒得喷) 配置! 首先应该根据我这篇文章所述,配置一下服务器仅ssh私钥登录。 如果懒得看文章也可以看这张图,反正都是老操作了。 将原本服务器的alist整个文件夹丢进/opt/alist/ 然后将alist.service丢进/etc/systemd/system/ 啧,你知道吗,备份就是这么爽。 太爽了。 如果用docker感觉会更爽。 systemctl的三条命令,太熟悉了。 查看状态->启动->设置开机自启动 虽然我不觉得我的服务器会关机。 好叭。 EZZZZZ 差点忘了,还有这两 ? 不是,我虽然上面说的是,“网络:有就行” 但是这转圈速度,认真的? ? ??? 京东你这样我要转黑了。 要知道alist只是个索引,数据本身不保存在alist上。 查索引的速度都能这么慢。。。 啧,算了。 《买都买了》《它还只是个孩子》 ...

May 14, 2025 · 1 min

【RSA交换律】基于RSA的智力扑克游戏

前排提醒 陷阱,别来。 什么RSA智力扑克 都是陷阱。 初次尝试 据说RSA的加解密是具备交换律的(注:后来发现不完全是这样) 也就是这样子: 神奇吧?A加密某个数据,随后B加密该数据,此时本来要解密的话是先B解密然后A解密的。 但是想不到吧,A是可以先解密,随后B解密的。 就因为看到这个神奇的操作,我开始了苦逼的尝试之旅。 读者看到这里有福了,因为可以不用自己去尝试了 这个标题是初次尝试,不过初次尝试的代码已经被我迭代掉了。 一开始肯定是使用第三方库来的舒服对吧。 点击查看图片 有cryptography库干嘛不用呢? 然后就是这样的: 第二次加密出错了,没错,A加密,B加密。。。B加密直接出错了。 问AI,AI说填充的问题,叫我改成NoPadding,然后我改了,发现没有NoPadding这个选项。 ...

May 11, 2025 · 1 min

【效率工具】日程管理的最优选

前言 经常做日程管理的朋友们都知道,日程管理不是什么好活 最近我也是弄起来这个东西了。 要求 能够支持手机与电脑同步日程管理 能够使用原生手机日历的提醒 电脑同样能够有一点提醒,最好也用Windows原生的提醒。 寻觅 先找了一个企业微信和钉钉,这俩都差不多,没怎么碰,因为企业因素比较高,而且只能从系统日历同步到他们自己的日历不符合我使用系统原生日历的需要。 注:两个软件都给了ex方法同步到系统日历,但是这样和邮箱提供的就没有区别了 发现 接下来找邮箱,gmail首先排除,墙壁的原因。 outlook是我第一个考虑的,毕竟微软出品,而且有逼格,而且据说非常注重日程管理,邮箱似乎还没有他日程管理的重要。 outlook之旅 缺点: 同样是墙壁原因,但这是弱墙,下载超慢,还是能连,概率断线 软件启动速度超慢 别用qq.com直接注册微软账号,不然有的你哭,现在还在用qq.com的,趁着没买东西赶紧去重新注册一个outlook.com,微软的兼容性真的没话说,如兼。 用outlook.com注册的新微软账号被限制使用了两次,两次都是需要我用手机重新验证,还好不像腾讯那样要签莫须有的保证书 优点: ...

April 27, 2025 · 1 min

【流量预警】装了UU远程/GameViewer的小心了

前言 月末了,没流量了,不过我今天怎么跑了4个G的流量? 我倒要看看是谁干的好事。 热点跑的?但是我一整天都挂着手机连电脑没动啊,最多也就偶尔用了一下。 别让我找到是谁偷跑我流量跑这么多 好啊好,UU远程,得,你清高,你偷偷上传我电脑数据是吧。虽说没抓到现行也只能怀疑而已,但我磁盘空间哪里够他一天占3个G? 更重要的是,我【一天内从来没有使用过它】,我挂着它开机自启动【只是为了在我需要用到的时候使用】 那么问题来了,一个我没有用到的软件,凭什么和我用的其他软件排在一起? 英伟达也是,不过这个不敢卸载,留着算了。浏览器、oopz、雷神我今天确实用过,放过他们了。 sunshine好像用了一次,在内网环境下的,那200MB内网的话就无所谓了。 往下翻了翻,更好笑了,ToDesk我【刚刚才使用过】,跑了45MB的流量。 那UU远程,你在干什么呢? 不会是拿我有ipv6的电脑跑节点吧。 比如其他用户的屏幕、操作数据,加密以后【经过我这台电脑中继】 这就是低延迟的理由吗 结语

March 29, 2025 · 1 min

Tailscale subnet-on-android

前言 啊哈,前段时间提了个issue,然后开发者那边回复了 再过了一段事件,合并了。 Jan 17合并的,Feb 4发布的,那我倒要看看有没有新东西。 不错不错,新功能加上了。 subnet有什么用 有人要问了,你安卓又不是路由器,搞个subnet干啥? 但是安卓可以开热点啊,尤其是在外面的网络,搞个subnet,可以让tail内东西访问到外面,让外面访问到tail内 带着一个手机就能让任何设备链接到tail内,那岂不是美哉哉? 开始 好了,先开一个热点,然后进行一个链接。 这里有个槽点,这个routes需要手动填,而手机没有办法指定和知道热点开出来是多少,还得去电脑上查了填 也可能是tail无法获取到这个信息。 随后需要在管理员界面批准这个subnet申请 249是那个“存在于subnet下”的电脑,tailscale内部网络对外发送数据非常完美。 以防不好理解,画个图在这里 另外,图里面没有的tail的ip在这里有: 奇怪,ping不到内部吗,只能从内部出外面? 翻翻文档。 100亿%的人都选择考虑从tail内访问tail外的子网。 怎么没人考虑过从tail外的子网访问tail内的功能呢,如果实现的话,家里NAS开着tail,然后在外带着一个手机,就可以经过手机访问NAS。。。。。 因为流量消耗的问题? 算了,翻不到解决方法,略微有些失望,但是也算是一半一半能访问吧。 不对,有没有可能,在linux上,就算不设置subnet,流量经过linux并且允许转发的话,自动就会链接到tail内,所以subnet只是为了让tail内识别tail外才用到的? 而安卓因为没有root,所以无法实现这一点? 有可能,但是不确定。 ...

March 16, 2025 · 1 min

服务器SSH 仅密钥登录

前言 随着我服务器上Alist资源的增多,服务器【本身】这个存放着Alist内所有密码(虽然都是随机生成的)的存在就显得非常的脆弱。 尽管我的ssh密码选择了随机生成并交给电脑记住,但是服务器被攻破导致全部密码我都得改一遍的后果我承担不起。 另注:因为上传到云盘的重要资料我都进行了加密上传,因此我倒不是很担心云盘内的资料泄露,只是改密码太麻烦了而已。 SSH仅密钥登录设置 对于windows来说,没有ssh-copy-id这个工具。 但是没关系,git bash有啊。 复制粘贴文件还是太麻烦了,有工具用工具,这才是人类啊(雾) 玩git的应该都不缺一个ssh公私钥对,但是为了博客完整,还是将代码贴在这里吧: # 生成 ssh-keygen -t rsa -b 4096 # 复制公私钥 ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip # 修改配置项,命令下面四行是配置内容。 sudo nano /etc/ssh/sshd_config # ===== 配置内容 ===== # 禁用密码登录 PasswordAuthentication no # 禁用 root 用户直接登录(可选,但推荐) PermitRootLogin no # 确保以下选项已设置 PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys # ===== 配置内容 ===== # 重启 sudo systemctl restart sshd # 测试 ssh username@server_ip 如果只是想要代码,上面已经是完整的代码了,拿去就可以用。 如果想要接着看配置步骤,就接着往下读: 在哪里打开bash都无所谓 涂得糊的看不清了,不过也没办法,总之就是这样,理论上说这里应该需要输入一次密码,但是自动跳过了,看来我之前已经做过了这一步,上传过公钥认证了。 那么接下来应该关闭密码认证就好了。 拉到最底下就能看到了 ...

March 15, 2025 · 1 min

Wamp SSL配置

生成自签名证书略过了 直接开始 配置 Apache 编辑 httpd.conf 文件: 打开 WampServer 安装目录下的 bin/apache/apache版本号/conf/httpd.conf 文件。 取消以下行的注释(删除行首的 #): LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 编辑 httpd-ssl.conf 文件: 打开 conf/extra/httpd-ssl.conf 文件。 修改以下参数以指向您生成的证书文件: ...

March 11, 2025 · 1 min

Windbg初见

下载与安装 在微软商店中找到Windbg即可。 这里是拼网速的时间,校园网可能有帮助。 在等下载的这段时间里面我也看了一些博客,大概了解了一下windbg的用法。 不过怎么说还是得在虚拟机也下载一个,总是不能在实体机调试的。 在Layout里面修改为Disassembly,这下有点od的样子了。 不过快捷键有点出入,还需要学习一下。 F5:运行 F11:步入 F10:步过 Shift+F11:执行到返回 F9: 下断 设置内可以修改为暗色模式,不过暗色模式总感觉什么配色都不太舒服。 并不重要的碎碎念 除了自带快照和TTD以外,倒没有给我特别大的惊喜,调试内核程序大概是目前最好的,只不过目前我也没有什么需要调试的内核样本,以后再玩吧。 不过接下来。。。 进虚拟机玩玩。 Hello world 在虚拟机的下载有点太久了,还是回到实体机调试一下helloworld试试。 ...

March 10, 2025 · 1 min

Windows内核学习笔记(五)

一点定义 作业(job) 是由执行体支持的一种内核对象,它能够将一个或多个进程视为一个整体来进行管理和控制。管理程序借助 Windows API,能够对作业所使用的系统资源(包括 CPU 或内存)的诸多限制进行控制,比如用户模式 CPU 时间的限制、进程的处理器亲和性、工作集的最大值与最小值、虚拟内存的使用限制等。 迁程(fiber) 是一种用户线程,对于内核来说是不可见的,是由 kernel32.dll 来实现的。应用程序可以在一个线程环境中创建多个迁程,并且可以手动控制这些迁程的执行。迁程不会自动执行,应用程序需要明确地选择某个迁程来执行。一旦迁程开始运行,它会一直运行,直到它退出,或者它显式地切换到另一个迁程。 目前没有看到这俩的用处,先记录下来,像这种定义却没有实际接触的东西可不好背,记下来方便以后回顾 同步、自旋锁 Windows根据执行环境中的IRQL大于APC_LEVEL 或者等于PASSIVE_LEVEL,将同步机制分为“不依赖线程调度的同步机制”和“基于线程调度的同步机制”。 不依赖线程调度的同步机制主要是在IRQL的高优先级下执行的,通常用于中断处理程序和内核模式代码中,以确保在处理中断或执行关键内核代码时,不会被其他线程打断。常见的不依赖线程调度的同步机制包括: 自旋锁(Spin Lock):自旋锁用于在多个线程之间互斥的访问共享资源,本质上是一种忙等待(busy-wait),意思是线程会一直自旋(忙等待)直到锁可用为止,而不会被挂起等待。常使用在高IRQL下,因为此时是不允许切换线程的,使用自旋锁可以确保关键代码不会被其他线程打断。一些自旋锁扩展:执行体自旋锁(支持共享和独占的语义)、排队自旋锁(queued spin lock)和栈内排队自旋锁(in-stack queued spin lock)。 中断服务例程(ISR):ISR用于响应硬件中断,当硬件设备触发中断时,操作系统会立即执行ISR来处理中断。ISR运行在IRQL的高优先级下,不允许进行线程调度,以确保快速响应中断。 延迟过程调用(Deferred Procedure Call,DPC):DPC用于延迟执行一些代码块或处理程序,常与中断处理有关。当硬件设备触发中断时,操作系统会将中断服务例程(ISR) 用于快速响应中断,但有时需要执行一些耗时的操作,例如数据传输或资源释放,这时就会使用DPC来延迟执行这些操作。 另一种基于线程调度的同步机制:当一个线程的执行条件不满足时,该线程进入等待状态,系统将控制权交由其他满足执行条件但没有得到处理器资源的线程;以后,当该线程的执行条件满足时,它又有机会继续执行。这里的执行条件正是Windows提供的线程同步机制中的语义。Windows定义了统一的机制来支持各种线程同步原语:分发器对象(dispatcher object),其数据结构头部为DISAPATCH_HEADER。 ...

March 9, 2025 · 3 min