败犬日报 2024-12-17
1. C++11 的下一个里程碑是哪个版本
可能是 C++20,module, concepts, ranges, coroutines 都能带来更好的编程体验。
C++23 补充了 ranges 的一些特性,可以合一起看。
2. 密码算法 aes-256-cbc 安全吗
CBC 模式有一些问题,比如 padding oracle attack 可以破解明文(需要一定条件)。不过使用得当是足够安全的。
GCM 模式是首选。但是 GCM 使用不当也有风险,比如 https://github.com/tl2cents/AEAD-Nonce-Reuse-Attacks。
3. 定时攻击
定时攻击是一种侧信道攻击,通过观察目标的响应时间来推断信息。
Python hmac.compare_digest
直接做了防止这种攻击的接口。
4. unused 变量编译警告怎么去除
C 语言可以用 (void)var;
来消除 unused 警告:
c
void foo(int var) {
(void)var;
}
C++ 可以用 [[maybe_unused]]
修饰变量:
cpp
void foo([[maybe_unused]] int var) {
}
5. 构建时生成的特定常量,导致表达式恒为真
有个常量 a 是构建时生成的,这个值恰巧是 0,然后代码里面用了一个 unsigned i;
i >= a
,表达式总是成立,编译器啪的给我打个警告出来。
编译器不知道常量 a 是构建时动态生成的。这个应该没什么办法,只能手动不让它警告。
6. yaml 其实是一种很友好的格式,只是你们没用对
有没有人觉得 yaml 格式很不友好、很难理解? - vdisk的回答 - 知乎
在这个基础上还可以把 key 的双引号去掉。
7. 拧魔方还原完前两层直接就全还原了,这什么概率
可能是 6 万分之一。https://www.zhihu.com/question/652958093/answer/3466624719
8. sql 真的很万能
一个比赛,要你写 sql 完成铁路售票功能,还得有先来后到,还有不同座席的偏好。