第1关:Hash函数的安全性
任务描述
Hash,一般翻译为散列、杂凑,或音译为哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
本关任务:给定输入的x和y,输出线性函数的Hash值。
相关知识
为了完成本关任务,你需要掌握:
1.带密钥的Hash族;
2.Hash函数的原像和第二原像;
3.碰撞。
编程要求
根据提示,补全右侧编辑器中 Begin-End 区间的代码,根据一个二元线性函数两个点的值,计算并输出其他给定点的哈希值。具体要求如下:
从后台获取两个点及对应的函数值(x1,y1) f(x1,y1)、(x2,y2) f(x2,y2),对于给定的(x3,y3),求解并输出f(x3,y3),保证 f(x3,y3) 是一个整数。
测试说明
平台会对你编写的代码进行测试:
测试输入:
1 2 3
2 3 5
1 4
预期输出:
5
开始你的任务吧,祝你成功!
#