@SerS_tds

Кто может проверить грамотность кода java?

Я совсем недавно начал учить язык. Попробовал написать RSA. В классе генерируются ключи для шифрования. Код работает. Можете оценить грамотность написания кода? Что можно поправить?
Спасибо.

package std.sys;

import java.util.ArrayList;
import java.util.Random;

public class Keys {	
	private int limit;
	private int[] openKey = new int[2];
	private int[] closeKey = new int[2];
	
	public Keys(int limit){	
		this.limit = limit;	
	}
	
	public int[] getOpenKey() {
		return openKey;
	}
	
	public int[] getCloseKey(){
		return closeKey;
	}
	
	public void genKeys()
	{
		ArrayList<Integer> num, num2;
		Random rand = new Random();
		int p, q, func;
		
		num = new ArrayList<Integer>(); // Множество простых чисел до указаного предела
		int quantityNumber = 0; // Колличество найденых простых чисел
		
		for(int i = 10; i <= limit; i++)
		{
			if((i%2!=0) && (i%3!=0) && (i%5!=0) && (i%7!=0) && ((i*i-1)%24==0))
				{
					num.add(i);
					quantityNumber++;
				}							
		}
		
		p = num.get(rand.nextInt(quantityNumber));
		do{
		q = num.get(rand.nextInt(quantityNumber));
		  }while (p == q);
		
		openKey[1] = p * q;	
		func = (p-1) * (q-1);
		
		num2 = new ArrayList<Integer>();
		int a, b, quantityNum=0; 
		for(int i = 0; i < quantityNumber; i++){
			if(num.get(i)<func)
			{
				a = num.get(i);
				b = func;
				while(b!=0)
					{
						int tmp = a%b;
						a = b;
						b = tmp;
					}
				if (a == 1)
					{
						num2.add(num.get(i));
						quantityNum++; // Кол-во подходящих взаимно простых чисел
					}
			}
			else{break;}	
	}
		openKey[0] = num2.get(rand.nextInt(quantityNum));
		 
		 num.clear();
		 num2.clear();
		 quantityNum = 0;
		 
		 for(int i = 1; i<1000; i++)
		 {
			 if((i*openKey[0])%func == 1){
				 num2.add(i);
				 quantityNum++; // Кол-во подходящих чисел i*openKey[0])%func = 1
			 }
		 }
		 
		 closeKey[0] = num2.get(rand.nextInt(quantityNum));
		 closeKey[1] = openKey[1];
		 
		 num2.clear();	 
		 
	} // End getKeys

} // End Keys
  • Вопрос задан
  • 189 просмотров
Пригласить эксперта
Ответы на вопрос 1
int p, q, func
int a, b
Что за имена?

// End getKeys
// End Keys
Такие комментарии не нужны
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
09 мая 2024, в 22:05
500 руб./в час
09 мая 2024, в 21:54
2500 руб./за проект
09 мая 2024, в 20:34
1000 руб./за проект