B1ue1nWh1te的文章

[2021夏季学期编程训练题一]解题思路及参考代码

2 条评论 WriteUp C++ 练习 B1ue1nWh1te

更新日志

[2021年7月5日] 做了难度为1和2的所有题目,额外加一道难度为3的第2题(今天均为C++解法 明天难度3和4尝试用Python来写)

[2021年7月6日] 目前做了第6和21题(C++写法),第3、5、7题(Python写法),题目是做一部分更新一部分的。评论区已经打开,如果你有好的建议和想法欢迎留言。

[2021年7月7日] 今天更新了第4、9、10题,还剩第8题明天用Python解。

[2021年7月8日] 第8题详解已更新,C++写法。(Python写法读bin文件有点复杂,就改用C++了)至此,训练一所有题目已经AC。

[2021年7月9日] 训练二题解已更新,点此<传送门>进入。

前言

文章内容为作者个人学习心得,解题思路及参考代码不一定是最优的,如发现有不正确的地方或更优的解法,欢迎批评指正或讨论交流。

1.众数

1

思路:由于输入的数据是比较规范的,所以可以通过判断新输入的数和上一个输入的数是否相同来入手,如果相同则计数器加1,如果不同则代表上一个数已经统计完毕,将数和计数值存入两个数组中,它们的下标相互对应,清空计数器并对下一个数进行同样的操作。计数完成后遍历计数数组寻找最先出现的最大众数的下标,输出数字数组中这一下标位置存储的数即可。


关于Base64隐写的简要分析

0 条评论 知识 WriteUp CTF Base64隐写 B1ue1nWh1te

前言

最近在入门CTF时遇见了一道Misc题是关于Base64隐写的(文章后半部分会提到),刷新了我对Base64的认知,因此写下这篇文章来介绍一下关于Base64隐写的知识。

在介绍Base64隐写之前,我们得先了解Base64编码的原理。

Base64编码

Base64编码就是用64个字符(2的6次方),对二进制数据进行编码的方式。这64个字符包括大写字母(A-Z)、小写字母(a-z)、数字(0-9)以及+和/这两个符号。由于Base64编码只用到了64个字符,所以使用6个二进制位就可以把所有的字符表示出来,于是原来的1个字节对应8个二进制位在Base64编码中就变成了1个字节对应6个二进制位。

每个字符对应的数值见下表:
base64编码表