JZX 轻语

挖掘时光的细节

[LeetCode每日一题]2952需要添加的银币的最小数量

题目 题目链接 给你一个下标从 0 开始的整数数组 coins,表示可用的硬币的面值,以及一个整数 target 。 如果存在某个 coins 的子序列总和为 x,那么整数 x 就是一个 可取得的金额 。 返回需要添加到数组中的 任意面值 硬币的 最小数量 ,使范围 [1, target] 内的每个整数都属于 可取得的金额 。 数组的 子序列 是通过删除原始数组的一些(可能不删除)...

[Qt/PyQt] 记录QThread使用的一次坑

在PyQt开发使用QThread的过程中,发现如果在worker(QObject对象)通过调用moveToThread移动到新的线程前,如果worker中有信号连接到了主线程的槽函数,那么这个槽函数即便会在worker移动到新线程之后,仍然在主线程中执行,而不是在worker所在的新线程中执行。这样会使得运行在主进程上的GUI程序在worker执行时会被阻塞,直到worker执行完毕。 ...

联通SK-D742-C光猫管理员密码获取/宽带密码获取/改桥接/IPv6设置

前言 最近家里网络波动有点大,感觉是光猫的性能不够好,遂尝试把光猫从路由模式改成桥接模式,并顺便修复至今存在的IPv6地址能获取的、但一直无法访问IPv6网站的问题。之前装网络的时候比较急,并没有叫师傅调整光猫的模式,且对宽带密码和光猫的管理员账户密码一无所知,恰逢过年也懒得打扰客服,于是用了一个下午的时间研究破解光猫并从中提取出这些信息,并将光猫改为桥接模式,使用路由器进行拨号。 家里...

[LaTeX] 使用Github Codespaces作为在线LaTex编辑器!

在我们的日常科研生活中,一般都是在本地上安装好TeX Live进行LaTeX的编写,或者在线使用Overleaf进行编辑。最近Github支持个人项目的Codespaces功能,可以在浏览器上直接使用VS Code进行代码编辑,而且支持一定的免费时长(免费个人用户支持15G的存储空间+120的核心小时数;Pro用户支持20GB的存储空间+180的核心小时数,详见Github文档,当然学生可以...

[LaTeX] LaTeX中文论文多位数三位分节处理

问题背景 在使用LaTeX修改送审后的毕业论文的时候,发现之前对多位数的处理是按三位使用逗号“,”进行分节,虽然符合国际通则,但分隔符和中文逗号长得比较类似,观感上有所影响: 之前论文选用逗号作为千位分隔符的截图 后来查了下相关的国标,发现一般的中文科技论文中,多位数分节的方式大多采用空格分隔。 国标GB/T 7713-87《科学技术报告、学位论文和学术论文的编写格式》 ...

[Python 杂记] 使用unittest.mock模拟键盘输入

在写Mumu-Notion的时候,由于测试代码有一些地方需要键盘输入(比如输入token等信息,以及输入回车继续下一个步骤),如果直接跑pytest的话会直接失败。 解决方法 可以使用unittest模块的unittest.mock.patch来为内置的input函数”打补丁“,以实现模拟键盘的输入。 mumu-notion的测试示例需要先输入Notion的Token, 然后输入一个页...

[Python 杂记] 在Linux上正确处理环境变量

开发环境 Ubuntu 22.04 Python 3.10 环境变量的读取 直接使用os.getenv方法即可正确读取。 import os os.getenv('TEST_ENV') 环境变量的写入 使用os.putenv方法可能不能将环境变量正确写入,为了避免上述情况,可以直接使用赋值的方法写入到os.environ中。 impo...

[密码学编程] 不安全字符串比较引发的计时攻击

以验证计时攻击(Verification Timing Attacks)为例

前言 在学习Dan Boneh教授的线上免费密码学MOOC时,Boneh提到了一个有趣的攻击——验证计时攻击(Verification Timing Attacks), 作为侧信道攻击的其中一种,验证计时攻击非常简单易懂,且十分常见,有时候程序员进行与密码学相关编程的时候很容易犯这个问题, 故记录下来警醒自己。 一句话概括该攻击,那就是:它是一种侧信道攻击,它利...

[椭圆曲线/可搜索加密] PBC C++ Wrapper/C++封装的PBC库用法简介

C++封装的PBC Library,可以简化代码和避免内存泄露

之前毕业设计的时候用到了PBC Library,在最后性能评估的时候使用Valgrind检测出了一堆的内存泄漏,原因大多是没有调用element_clear()代码释放元素。另一方面,C语言版本的PBC Library用起来其实比较繁琐,需要多次调用element_init_G1()之类的初始化代码,而且元素的运算也不直观(因为C语言不支持运算符重载),用起来很容易犯错误的。 在这个过程中...

[可搜索加密]PBC Library/PBC库的用法简介

椭圆曲线群上的配对运算库

毕业设计的时候编程用到了PBC库。现在毕业设计完成了答辩,对PBC库的用法做一个总结吧。 安装 安装PBC前需要先安装GMP库,可输入sudo apt-get install libgmp3-dev(Debian系,下同)命令安装。 还需要安装flex,bison,可输入sudo apt-get install flex, b...