C 转换查找库

C 转换查找库,c,perl,transform,C,Perl,Transform,我有两个32位向量,一个通过数学/逻辑变换从另一个派生。 是否有一个Perl/C库可以查找应用了什么类型的转换(或该库能够推断的所有可能的转换的列表) Case1. 968eac37 -> 968eac37 Case2. 12345678 -> 23456781 Case3. 614e1973 -> 30f7150d Output 1. No transform 2. Bit wise shift left 4 or trivial addition 3. Trivia

我有两个32位向量,一个通过数学/逻辑变换从另一个派生。 是否有一个Perl/C库可以查找应用了什么类型的转换(或该库能够推断的所有可能的转换的列表)

Case1. 968eac37 -> 968eac37  
Case2. 12345678 -> 23456781 
Case3. 614e1973 -> 30f7150d

Output
1. No transform
2. Bit wise shift left 4 or trivial addition
3. Trivial subtraction or something else or unknown

不,这将涉及实际应用所有转换来检查结果。根据定义,任何涉及加密的转换都是不可确定的

以“微不足道的减法”为例。您如何将其与“普通的32位模加法/乘法”区分开来


您的基本问题实际上是“如何撤消加密”,这对于任何足够强的加密都是不可能的。对于“弱”加密,可以有多个答案,因此没有这样的库。

我在调试硬件时遇到了这个问题,其中一个向量转换为另一个向量(错误),通常是因为数据路径连接错误。如果我仅限于简单的逻辑转换操作,该怎么办?像移位位、反向位等?给定任意两个随机的32位字符串,我可以很容易地得到任意数量的逻辑操作集,将一个转换成另一个。例如,给定两个随机位序列A和B,计算C=(A或B)。现在(cxor A)产生B,(cxor B)产生A。这可以对任意两个长度相同的位字符串进行。