2010-05-21 36 views
1

有沒有加密任何長度的字符串或文件並返回固定長度的密鑰的方法。加密/解密請求

如:

$str = 'Hello World!'; 
encrypt($str);//returns: "abc123"//a fixed length of characters. 
decrypt('abc123');//returns: "Hello World!"//the contents of the original string. 

以上是在PHP

可以是任何計算機語言:

可以是任何固定的數量,只要它的固定

由固定我總是意味着相同:32個字符,64個字符或X個字符。

我研究了一下,它看起來很難或不可能。 但你永遠不知道,我想這可能是worthed問

,如果你不問,你沒有得到:)日Thnx

回答

1

是的,如果有上限X您想要加密的字符數,這是可能的。只需使用任何加密算法進行加密,然後將結果填充到X個字符。

如果沒有上限,由於信息理論的原因這是不可能的(你必須以某種方式將無限數量的字符存儲爲有限數量的[加密]字符,這在一般情況下是不可能的)。要理解爲什麼,請查閱pigeonhole principle

+0

上限很有趣 - 例如,如果您的密文長度爲1e80,則應該能夠覆蓋任何明智的輸入。雖然這會很慢,但我不知道如何存儲密文。 – Stewart 2010-05-21 12:15:13

3

沒有沒有。你要求寫一個函數,該函數需要n位輸入並返回可以反轉的32個字符的輸出。沒關係加密,如果我有一個算法,可以做我會賺錢銷售壓縮技術。這是不可能的 - 32個字符的輸出只能無損編碼32個字符的輸入

+1

嗯,我想我已經有了一個想法,但我一直在做錯事,並一次又一次地修改它。不要走得太遠,但我想你回答'如果我有一個算法可以做,我會賺錢銷售壓縮技術'是我不能詳細的原因,並想知道是否存在類似的東西存在:) thnx隊友:) – Val 2010-05-21 12:13:03

+0

這將使YouTube這麼快...... – Thilo 2010-05-21 12:13:06

+0

@Val - 我非常期待看到它。你會叫它Shergar嗎? – Stewart 2010-05-21 12:17:46