2012-01-08 16 views
1

私は単純なアルゴリズムのコンセプトを開発しようとしています。これは厳密な文字(大文字と小文字の両方)と数字からなるシーケンスになります。私はこれを行う方法はたくさんあると確信していますが、まともなアイデアの周りに私の頭を包んでいるようには見えません。与えられた記号を文字/数字に変換する方法はたくさんありますが、難しい部分は文字/数字を元の記号に戻すことになります(したがって、タイトルの一部としてデコードを含む理由)。アルファベット順でしかないエンコーディング/デコード

これまで誰でもこれをやったことがあるかどうか知りたいですが、私は何を試してみることをお勧めしますか?

+3

ヒント:Base64はあなたが望むものに非常に近いです。 (これには英数字以外の文字も含まれていますが、そうでなければアイデアはうまく一致します。)暗号化した後にエンコードし、解読する前にデコードします。 「暗号化」しない限り、「エンコード」を意味します。その場合は、エンコードとデコードを行います。 :) – cHao

+0

サイズの問題については、私のコメントをご覧ください。 –

答えて

2

私は車輪を再発明しないで、代わりにBase64 encodingを使用することをお勧めします。 .NETには変換が組み込まれています。

Convert.ToBase64String(arrayOfBytes) 

P.S.それはちょうどをコード化しています。これは私があなたが意味すると思うものです - 暗号化ではありません。

+0

ああ、はい 'エンコード'します。申し訳ありません。 base64の問題は、私がエンコーディングしているデータを大幅に拡張していることです。例えば、私が16kbのファイルをbase64に変換すると、結果の文字列はほぼ40%大きくなります。私は可能な限りデータサイズをそのまま維持したい。 –

+1

エンコード前に圧縮します。それ以外は、あなたはSOLです。情報を失うことなく8ビットを任意に6に変えることはできません。ビットはどこかに行く必要があります。 Base64やそれに類する方式では、他のバイトに移動するだけです。 – cHao

+0

@エヴァン:残念ながら、私はBase64エンコーディングが任意のデータのためのスペースの点で最も効率的だと思います。ご存知のように、*任意のデータ*を小さな文字セットにエンコードして、同時にサイズを保持することは不可能です。特定のデータに特定の構造がある場合、カスタムアルゴリズムを実装するか、Base64を使用する前に圧縮することができますが、一般的には...あなたは運が悪いです:( – Ryan

関連する問題