2013-05-15 86 views
1

我試圖用一個算法來壓縮/加密一個shor固定大小的字符串從52個字符到40個字符,但似乎無法找到任何字符。將短固定長度的字符串(52個字符)壓縮到小於40

目標串是隨機的字母數字

我試圖哈夫曼和smaz(https://github.com/antirez/smaz「)和兩個充氣到原始字符串的大小[A-Z0-9] 例如 「M5KS07VHN2X42JCY1PFHE1ZZGI2XUBDFAKQBEPFB7CH4SECXHJXL」。

不任何人都知道這樣的目的很好的算法?

+1

我不認爲任何壓縮都會保證任何輸入的特定百分比。如果你需要堅如磐石的保證,讓52到40歲以下無損,你可能會遇到麻煩。 – David

+1

@Dave:除非您知道輸入是字母數字,否則每個字符都可以用6位表示。 –

+3

https://en.wikipedia.org/wiki/Base64。 –

回答

6

對於一個A-Z0-9,最簡單的編碼是簡單地編碼爲每個字符6位(這可能會允許更多,52個字符是52 * 8位,壓縮的字符串將是52 * 6 = 39個字節。

編輯:一個稍微複雜一點的系統是使用DEC在其PDP-11和類似系統中使用的RADIX-50格式進行存儲,其中PDP-11和類似系統通過對每個字符使用乘數40來存儲3個字符的16位。當我還是學生時,我使用了這個系統,學校有一臺運行RSTS/E的PDP-11。

+0

Touché。非常感謝;) – user327843

+1

注意:他們稱之爲RADIX-_50_,因爲50實際上是一個八進制數,等於十進制的40。相關笑話:世界上有10種人:那些懂二進制的人,那些不懂的人。 –

相關問題