Untitled
4 years ago in Plain Text
public static String Encrypt(String s)
{
int i, j;
int randomBitPattern[] = new int[8];
for (i = 0; i < 7; i++)
{
randomBitPattern[i] = (i % 2 == 0) ? 1 : 0;
}
// yazdığımız metinnin uzunluğu boyunda bir char dizisi oluşturduk .
char asc[] = new char[s.length()];
for (i = 0; i < s.length(); i++)
{
asc[i] = (char) ((int) s.charAt(i));
//oluşturduğumuz char dizisinin içerisine , metnimizin her bir ASCII numrasını tek tek attık .
}
BasicOperation b1 = new BasicOperation();
String cipherText = new String("");
// Burada ise bir şifreli metin için bir String tipinde değişken oluşturduk.
for (i = 0; i < asc.length; i++) //ascnin uzunluğuna kadar bir for döngüsü açtık ve . . .
{
int temp = (int) (asc[i]); // asc nin i . karakterinin ASCII kodlarını temp tipinin içerisine attık .
int len = b1.decimalToBinary(temp);//temp i decimal den Binary e dönüştürdük .
int bintemp[] = new int[7]; // int tipinde binary dizisi için 7 uzunluğunda bir dizi oluşturduk .
int xorlen; //
if (len == 7)
{
for (j = 1; j <= len; j++)
{
bintemp[j - 1] = b1.binaryArrayAtPosition(j);
}
// XOR İşlemi
xorlen = b1.xorop(bintemp, randomBitPattern, len);
}
else
{
bintemp[0] = 0;
for (j = 1; j <= len; j++)
{
bintemp[j] = b1.binaryArrayAtPosition(j);
// b1 de dönüştürdüğümüz binary değerleri burada bintemp dizisinin içerine atılır.
}
// XOR Operation
xorlen = b1.xorop(bintemp, randomBitPattern, len + 1);
//Oluşturduğumuz gereksinimler ile XOR işlemine tabi tutulur ve xorlen return edilir.
}
int xor[] = new int[xorlen]; //XORLEN boyutunda bir integer dizisi olşturulur.
for (j = 0; j < xorlen; j++)
{
xor[j] = b1.xorinArrayAt(j);
// b1 nesnesi içersinde global olarak tanımladığımız ve xor[] içine attığımız dizinden j. değer çekilir.
cipherText = cipherText + xor[j];
//String ile oluşturduğumuz ciphertext içerisine XOR değerleri atılır.
}
}
return (cipherText);
// Şifrelendi!
}