using System.Media;
using System.Text;
namespace Testing
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
{
//Take input string
string str = textBox2.Text;
char[] cha = str.ToCharArray();
MessageBox.Show(cha[2].ToString());
//Convert char to binary
string[] bin1 = new string[cha.Length];
for (int s = 0; s < cha.Length; s++)
{
bin1[s] = Convert.ToString(cha[s], 2);
}
MessageBox.Show(bin1[3]);
// Convert bin to byte
byte[] abar = new byte[bin1.Length];
for (int p = 0; p < bin1.Length; p++)
{
abar[p] = Convert.ToByte(bin1[p], 2);
}
// Show message
char[] chars = System.Text.Encoding.UTF8.GetString(abar).ToCharArray();
string msge = string.Empty;
for (int q = 0; q < chars.Length; q++)
{
msge += Convert.ToString(chars[q]);
}
//Making binary to char array
char[] bin2 = string.Join(string.Empty, bin1).ToCharArray();
MessageBox.Show(bin2[9].ToString());
MessageBox.Show(bin1[3]);
MessageBox.Show(abar[3].ToString());
MessageBox.Show(chars[3].ToString());
textBox3.Text = msge;
msge = msge.Remove(msge.Length - 1);
MessageBox.Show(msge);
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Wav File|*.wav";
if (ofd.ShowDialog() == DialogResult.OK)
{
ofd.Filter = "Wav File|*.wav";
byte[] data = File.ReadAllBytes(ofd.FileName);
MessageBox.Show(data[6].ToString());
var path = "stego14.wav";
//audio byte to binary
string[] bina = new string[data.Length];
for (int i = 0; i < data.Length; i++)
{
bina[i] = Convert.ToString(data[i], 2);
}
//removing the last char of binary
string[] nbina = new string[bin2.Length];
for (int h = 0; h < bin2.Length; h++)
{
nbina[h] = bina[h].Remove(bina[h].Length - 1);
}
//adding message bytes in last bit audio binary
string[] nbina1 = new string[bin2.Length];
for (int w = 0; w < nbina1.Length; w++)
{
string d = string.Empty;
d = nbina[w];
d = d + bin2[w];
nbina1[w] = d;
}
byte[] au = new byte[nbina1.Length];
for (int g = 0; g < nbina1.Length; g++)
{
au[g] = Convert.ToByte(nbina1[g], 2);
}
//replacing array element data byte array
for (int y = 0; y < au.Length; y++)
{
data[y] = au[y];
}
File.WriteAllBytes(path, data);
MessageBox.Show("Data written");
}
}
}
}
}
Here is my code. Here the wav file first converted to byte then the byte is converted in binary then the binarys last bit is replaced by the char binary bit. Now i can get a new wav file byt it's not playable. Please help me.