2015-09-11 95 views
0

我有5個數字代碼。它們長度不等(8-10位)。對於每個數字代碼,我都有相應的字母數字代碼。字母數字代碼總是8位數字。反向工程哈希/加密功能

現在的問題。我知道通過某個過程,每個數字代碼都被轉換成相應的8位字母數字代碼,但我不知道使用的過程。起初,我認爲字母數字代碼可以使用數字代碼中的種子隨機生成,但似乎並不奏效。現在我想,某種哈希算法被用來將NUMERICS轉換爲字母數字

我的問題是

1)我可以蠻力解決這個

2)如果是,則我應該考慮哪些算法,可以將數字代碼轉換爲8位字母數字代碼

3)是否有其他解決方法?

注意:字母數字代碼不區分大小寫。我不介意強力搜索是否會返回一些誤報,因爲我可以自己縮小搜索範圍。

澄清:我認爲第一個人誤解了一些東西。我知道這些數字和字母數字代碼的確切值。我只是不在網站上分享他們。我不是試圖隨機地將代碼映射到代碼我試圖找到一種將我的特定代碼映射到輸出的算法。

+0

如果輸出是字母數字,我假設base62在這裏,他們的長度是8個字符或大約6個字節,那麼沒有共同的散列函數產生6個字節的輸出。輸出可能會被修剪,但這是另一個變量,因爲有很多方法可以修剪某些東西。 –

+0

基數36因爲沒有大小寫敏感性 – ThatOneGuyInXNA

回答

1

不,你不能強迫這個。

有5個輸入映射到5個輸出的功能數量不限。你如何知道你是否找到了正確的功能?例如,你可以使用這5對作爲n次多項式的約束條件。有無限多個可能的多項式解決方案。

如果您可以縮小功能範圍,那麼對問題還有其他限制。

如果您假定使用了哈希函數,那麼您可以嘗試猜測沒有哈希函數,並且搜索空間超過了衆所周知的哈希函數。如果存在醃製,你會陷入暴力破壞所有可能的哈希函數的所有可能的鹽。只用鹽,你可能看着> 2^128的值。蠻力攻擊不會有用。

如果使用對稱密碼,則會出現所選密文問題的實例。現代密碼是故意設計的,考慮到這種攻擊並使用128位或更多的密鑰空間。暴力強制所有的鑰匙不會工作。

你沒有聲明任何關於該功能。它是否可逆?它是隨機的嗎?

+0

首先我相當肯定他們使用一個衆所周知的算法(因此我的請求列表),而不是一些未知的算法。其次,我說我可以接受假陽性,因爲我有5的樣本大小,如果需要的話我可以得到更多的樣本。另請參閱我的編輯 – ThatOneGuyInXNA

+0

您是否嘗試過常用的散列方法?即使這些方法中的每一種都可能有不同的結果,這取決於所使用的鹽和迭代次數。假設您發現使用的算法是MD5,您仍然需要查找salt和迭代次數。在實踐中,你將不得不通過組合算法,鹽和迭代組合來暴力。 – Martheen

+0

感謝您的評論Martheen。這是我一直在尋找的東西。我只想要一個粗略的想法,我應該強制哪些類型的組合和算法來解決這個問題。 – ThatOneGuyInXNA