2016-04-02 21 views
1

私はPosition Swappingを使ってテキストを暗号化するプロジェクトに取り組んでいます。私は、文字位置のスワップ{Hello - > elloH}を使用してプロジェクトを完了しました。今、私はビットポジションスワップに取り組んでいます。私はビットを暗号化するために同じアルゴリズムを使用していますが、問題は結果のビットを文字列に戻す方法です。C#の文字列をビットに変換する方法

注:BitArrayは使用できません。ここで

は私が今持っているものです:

static byte[] toByteArray(string s) 
    { 
     byte[] arr = new System.Text.UTF8Encoding(true).GetBytes(s); 
     return arr; 
    }// Byte Array must be changed to bits. 
private void button1_Click(object sender, EventArgs e) 
{ 
     String[] X = new String[x.Length];// Will Contain the Encoded Bits 
     for(int i=0;i<x.Length;i++) 
     { 
      X[i] = Convert.ToString(x[i], 2); 
      textBox3.Text += X[i]; 
     } 
} 
+1

あなただけのバイト内またはもバイトの間でビットをシフトしますか? BitArrayを使用できないのはなぜですか?バイト内の(多かれ少なかれ)ランダムビットを変更すると、このバイトを文字列内の文字としてレンダリングできなくなることに注意してください。ありがとう。 – derpirscher

答えて

2
 string str = "1000111"; //this is your string in bits 
     byte[] bytes = new byte[str.Length/7]; 
     int j = 0; 
     while (str.Length > 0) 
     { 
      var result = Convert.ToByte(str.Substring(0, 7), 2); 
      bytes[j++] = result; 
      if (str.Length >= 7) 
       str = str.Substring(7); 
     } 
     var resultString = Encoding.UTF8.GetString(bytes); 
+0

ありがとう。それは正常に働いた。 –

+0

大歓迎です。あなたも私の答えをupvoteしていただけますか? –

関連する問題