private static void SubSisip(Stego.Mode myMode) { if (myMode == Stego.Mode.PCA) { Rotasi = "R"; for (int i = 1; i < Pr; i++) { Y = Misc.FastExp(G, i, Pr); if (i - 1 < N) { if (isGanjil(Pixel[Y].R + Pixel[Y].G + Pixel[Y].B + Convert.ToInt32(M_1[i - 1].ToString()))) { Pixel[Y] = newPixel(Pixel[Y]); } } else { break; } } } else if (myMode == Stego.Mode.PCS) { Rotasi = "R"; for (int i = 0; i < N; i++) { if (isGanjil(Pixel[i].R + Pixel[i].G + Pixel[i].B + Convert.ToInt32(M_1[i].ToString()))) { Pixel[i] = newPixel(Pixel[i]); } } } }
private static string SubEkstrak(Stego.Mode myMode, int Start, int Panjang) { string res = ""; if (myMode == Stego.Mode.PCA) { for (int i = 1 + Start; i <= (Start + Panjang); i++) { int Y = Misc.FastExp(G, i, Pr); if (isGanjil(Pixel[Y].R + Pixel[Y].G + Pixel[Y].B)) { res += "1"; } else { res += "0"; } } } else if (myMode == Stego.Mode.PCS) { for (int i = Start; i < (Start + Panjang); i++) { if (isGanjil(Pixel[i].R + Pixel[i].G + Pixel[i].B)) { res += "1"; } else { res += "0"; } } } return(res); }
public static bool isBmpCukup(string myPesan, string myKunci, Bitmap myBmp, Stego.Mode myMode, Stego.Enkrip myEnkrip) { bool res = false; M = myPesan; K = myKunci; img_ori = myBmp; nP = img_ori.Width * img_ori.Height; if (myEnkrip == Stego.Enkrip.AES128) { bK = JadiBit(PadChar(K, 16), 8); eM = AES.Enkrip(PadChar(M, 16), PadChar(K, 16)); } else if (myEnkrip == Stego.Enkrip.AES256) { MessageBox.Show("Maaf Fitur AES256 Belum Ada", "Informasi"); } else if (myEnkrip == Stego.Enkrip.NoEnkrip) { K = ""; bK = ""; eM = M; } bM = JadiBit(eM); inM = Misc.IntToBin(nP).Length; bnM = Misc.IntToBin(bM.Length).PadLeft(inM, '0'); M_1 = bnM + bK + bM; N = M_1.Length; if (myMode == Stego.Mode.PCA) { Pr = Misc.GetPrima(nP); G = Misc.GetGemod(Pr); if (Pr > N) { res = true; } else { res = false; } } else if (myMode == Stego.Mode.PCS) { if (nP > N) { res = true; } else { res = false; } } return(res); }
public static Bitmap Sisip(string myPesan, string myKunci, Bitmap myBmp, Stego.Mode myMode, Stego.Enkrip myEnkrip) { if (isBmpCukup(myPesan, myKunci, myBmp, myMode, myEnkrip)) { isiPixel(); SubSisip(myMode); img_hsl = JadiBmp(); } return(img_hsl); }
public static bool isKunciSama(Bitmap myBmp, string myKunci, Stego.Mode myMode, Stego.Enkrip myEnkrip) { img_ori = myBmp; isiPixel(); nP = img_ori.Width * img_ori.Height; inM = Misc.IntToBin(nP).Length; if (myMode == Stego.Mode.PCA) { Pr = Misc.GetPrima(nP); G = Misc.GetGemod(Pr); } bnM = SubEkstrak(myMode, 0, inM); nM = Misc.BinToInt(bnM); //MessageBox.Show(myEnkrip.ToString(), "Informasi"); if (myEnkrip == Stego.Enkrip.AES128) { bK = SubEkstrak(myMode, inM, 128); K = JadiText(bK).Trim(); } else if (myEnkrip == Stego.Enkrip.AES256) { MessageBox.Show("Maaf Fitur AES256 Belum Ada", "Informasi"); } else if (myEnkrip == Stego.Enkrip.NoEnkrip) { bK = ""; K = ""; } //MessageBox.Show(K); if (K == myKunci) { return(true); } else { return(false); } }
public static string Ekstrak(Bitmap myBmp, string myKunci, Stego.Mode myMode, Stego.Enkrip myEnkrip) { if (isKunciSama(myBmp, myKunci, myMode, myEnkrip)) { if (myEnkrip == Stego.Enkrip.AES128) { bM = SubEkstrak(myMode, (inM + 128), nM); eM = JadiText(bM); M = AES.Dekrip(eM, K, 4); } else if (myEnkrip == Stego.Enkrip.AES256) { M = "Maaf Fitur AES256 Belum Ada"; } else if (myEnkrip == Stego.Enkrip.NoEnkrip) { bM = SubEkstrak(myMode, inM, nM); eM = JadiText(bM); M = eM; } } return(M); }