Xor

你能認出這個算法嗎?

  • May 29, 2015

我們正在嘗試將我們的應用程序集成到第三方系統中。為此,我們需要將加密密碼傳遞到該系統。我已經反編譯了程序集並查看了程式碼,它們似乎使用了類似於 XOR 加密的東西(在生產系統中……)從我可以從反編譯的程式碼中看到它做了這樣的事情:

下面的虛擬碼是錯誤的。這是原始碼的連結,經過反編譯,轉換為 C# 並進行了一些清理:http: //pastebin.com/rAcXPvL6

string key = "1234567890123456"
string plainText = "test"
int[] keyData = GetAsciiValuesAsArray(key)
int[] plainData = GetAsciiValuesAsArray(plainText)
int prime = GeneratePrimeNumber()
string cipherText = ""


foreach(plainTextChar in plainData)
{
    int a = prime / 256.0 * 256.0 - prime % 256 / 256.0
    int b = prime % 256
    for(int i = 0; i < 16;i++)
    {
         keyData[i] = keyData[i] ^ GetAsciiValue(plainTextChar);
    }
    plainTextChar = plainTextChar ^ (a ^ b)
    int c = (plainTextChar / 16.0 * 16.0 - (plainTextChar % 16)) / 16.0;
    int d = plainTextChar = % 16
    cipherText = cipherText + ConvertFromAscii(c + 97) + ConvertFromAscii(d + 97)
}

這對任何人來說似乎都很熟悉嗎?希望這是一種公認的算法,而不是他們自己拼湊的東西。

謝謝,

第一:在這個網站上分析程式碼是題外話,不要期望太多。

對於這個問題:“永遠不要編寫自己的加密貨幣”是一個聲明,這常常被忽視。沒有深入探勘,它看起來像一些自製(並且完全不安全)的算法:根本不使用密鑰,因此它基本上是具有確定性密鑰流的流密碼(一次一個符號)。

建議:不要使用這個,以後也不要使用他們的加密實現。並非每個錯誤都像這個錯誤一樣容易檢測。在加密貨幣中,你可以做很多錯誤的事情。

引用自:https://crypto.stackexchange.com/questions/25991