C# 从Gö转换;将代码转换为文本

C# 从Gö转换;将代码转换为文本,c#,encryption,C#,Encryption,我正在做一个哥德尔加密软件,但我面临一个问题。 加密后如何获取代码?例如,符号0的哥德尔数为6,符号=的哥德尔数为5。因此,在他们的系统中,公式0=0的哥德尔数是2^6×3^5×5^6=243000000 注:2^6表示6次方中的2 //need to make 5+6 int equalsign = 5; int n5 = 2; int n6 = 59; int final; //do caluclations

我正在做一个哥德尔加密软件,但我面临一个问题。 加密后如何获取代码?例如,符号
0
的哥德尔数为6,符号
=
的哥德尔数为5。因此,在他们的系统中,公式
0=0
的哥德尔数是2^6×3^5×5^6=243000000

注:2^6表示6次方中的2

 //need to make 5+6
        int equalsign = 5;
        int n5 = 2;
        int n6 = 59;
        int final;
        //do caluclations
        final = (Math.Pow(2, 2) * Math.Pow (3, 5) * Math.Pow(5, 59)); 
        Console.WriteLine(final);
如何从243000000获取
0=0
?我有这个问题,有什么建议如何使它或为代码

final = (Math.Pow(2, 2) * Math.Pow (3, 5) * Math.Pow(5, 59)); 
这也不行。有没有办法解决这个问题

这是格德尔公式:

一般的想法是将数字
final
除以当前素数p,只要它能被p整除。你能被每个素数平均除的次数给你力量

粗略地说,您正在寻找以下伪代码:

code = []
for each prime p:
    c = 0
    while final % p == 0:
         c++
         final = final / p
    code.append(c)

很好,谢谢。。但是这会不会让这个过程太长而无法编译呢。为了得到结果?当把这些数字一一相加时,可能感觉不到,但假设在一个数据库中有500个加密数据。它会在显示之前解密所有的内容。。这样会不会太长?是的,这样效率很低。将数字
final
转换为代码中的数字序列的过程就是整数分解。目前还没有已知的多项式时间算法。它也不是加密,所以最好把这个过程称为“解码”而不是“解密”。。。你知道有什么方法可以让人们很难理解数字/值/字符串,但只能用软件来理解它吗?我尝试过md5、PAC2和一些类似的系统,但是网上有很多解密软件/网站。实际上,现在我更深入地思考了一下,我不确定它是否一定是低效的。原因是您所有的数字都是2^(n1)*3^(n2)*5^(n3)。。。其中n1、n2等都是正数,字母表的大小是有界的。。。。它实际上可能在多项式时间内可行。结果非常大,例如2^6*3^5*5^59。结果是1.666666666e-1,但如何获得从1666666666e-1到之前的数字?这是我没有发现的,