Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
322
Tıklama
0
Öne Çıkarma
Asal Sayıları Kullanarak Mesaj Şifreleme ve Çözme
A
4 yıl
Onbaşı
Konu Sahibi

import java.util.*;

public class Encryption {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String text = input.nextLine();
System.out.println(textEncryption(text));
}

public static String textEncryption(String text) {
int[] primeArray=new int[text.length()];
primeNumbers(primeArray);

StringBuilder newText = new StringBuilder();
int character;

for(int a=0;a<text.length();a++){
character=text.charAt(a);
if(character==32)
newText.append((char) character);
else if(character>=33 && character<=64){
newText.append((char) (((character)+primeArray[a])%32+65));
}
else if(character>=65 && character<=96){
newText.append((char) (((character)+primeArray[a])%32+33));
}
else
newText.append((char) (((character)+primeArray[a])%26+97));
}

return newText.toString();
}

public static void primeNumbers(int[] array) {
boolean prime=true;
array[0]=2;
int ordinaryNumber=3, numberOfElements=1;
for(int a=1;a<array.length;){
prime=true;
for(int b=0;b<numberOfElements;b++) {
if (ordinaryNumber % array[b]==0){
prime=false;
break;
}
}
if(prime) {
array[a]=ordinaryNumber;
numberOfElements++;
a++;
}
ordinaryNumber++;
}
}
}


https://onecompiler.com/java/3wpb42p7p



import java.util.*;

public class Decryption {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String text = input.nextLine();
solution(text);
}
public static void solution(String text) {
int[] primeArray=new int[text.length()];
primeNumbers(primeArray);
StringBuilder newText = new StringBuilder();
int character;
for(int a=0;a<text.length();a++){
character=text.charAt(a);
if(character==32)
newText.append( (char) 32 );
else if(character>=33 && character<=64){
character -= 65;
character -= primeArray[a] % 32;
while (character < 65)
character += 32;
newText.append( (char) character );
}
else if(character>=65 && character<=96){
character -= 33;
character -= primeArray[a] % 32;
while (character < 33)
character += 32;
newText.append( (char) character );
}
else {
character -= 97;
character -= primeArray[a] % 26;
while (character < 97)
character += 26;
newText.append( (char) character );
}
}
System.out.println(newText.toString());
}

public static void primeNumbers(int[] array) {
boolean prime=true;
array[0]=2;
int ordinaryNumber=3, numberOfElements=1;
for(int a=1;a<array.length;){
prime=true;
for(int b=0;b<numberOfElements;b++) {
if (ordinaryNumber % array[b]==0){
prime=false;
break;
}
}
if(prime) {
array[a]=ordinaryNumber;
numberOfElements++;
a++;
}
ordinaryNumber++;
}
}
}

https://onecompiler.com/java/3wpb42p7p


< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



C
4 yıl
Yüzbaşı

Dostum java pratiği için güzel bir uygulama olmuş ama şifreleme tekniği olarak 2000 senelik sezar tekniğinden bir farkı yok malesef.

https://en.wikipedia.org/wiki/Caesar_cipher

Asal sayıların gerçekten kullanıldığı bir şifreleme yöntemi istiyorsan RSA yi incele.

https://en.wikipedia.org/wiki/RSA_(cryptosystem)

Yine de eline sağlık


Bu mesaja 1 cevap geldi.
A
4 yıl
Onbaşı
Konu Sahibi

Teşekkürler



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.