是否有一个软件可以帮助我根据已知的输入和输出转换“十六进制”代码?

是否有一个软件可以帮助我根据已知的输入和输出转换“十六进制”代码?

标题有点让人困惑,但大意如下:

我有一个“HexCode”列表(我随意使用该术语,因为它们实际上不是十六进制代码)转换前和转换后。例如;

Input: aaea095f      Output: 201328c,3f,42,f4,f4
       01efb53c

我没有直接转换它们所需的算法,并且依赖于使用两个程序将一种十六进制类型(HexType1)转换为另一种十六进制类型(HexType2),然后才能将它们进行最终转换(HexType3)。

我的目标是使转换过程自动化,但由于我自己不了解算法,我无法使用当前的工具来做到这一点。是否有一个软件可以让我输入转换前后的列表,然后它会根据我提供的内容生成一个算法以供将来使用?

我知道基于有限输入创建算法很可能不会产生最佳结果,但我已经许多已经完成的转换可以增强所产生的算法。

附录:我错误地将我的代码描述为加密性质,而实际上它们更接近十六进制值。对于由此造成的任何混淆,我深表歉意。我将“密钥”更改为“十六进制代码”,以便更好地阐明我的观点。

答案1

既然你提到了密码学,那么好的密码算法的一个很酷的功能就是,即使你可以访问输入和输出,它们也几乎不可能猜出用于加密某些内容的确切算法(即函数加密钥)。即使你有少量的输入和匹配的输出样本(即几十亿个),你也无法预测新输入产生的输出。

换句话说,除非你给程序提供所有可能的输入和输出,否则你想做的事情是无法完成的。你需要了解的不仅仅是输入和输出,还有算法。


编辑:存在像神经网络这样的算法 - 以及其他一些算法 - 可以用给定的输入和输出集进行“训练”。例如,可以训练神经网络在一组随机图片中标记鸟类图片。这些听起来像是简单而完美的解决方案,但世界并非那么简单。在训练神经网络之前,必须对其进行结构化以匹配它需要解决的问题,在这种情况下,这需要有关它模仿的算法的作用的额外信息,否则训练网络将失败。

相关内容