Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.math.BigDecimal;
- import java.util.Arrays;
- import java.util.Scanner;
- class Eyler{
- int EylerValue(int value_p, int value_q, int res, int value_d){
- int E_fn = (value_p-1)*(value_q-1);
- int value_e = (1+(1*E_fn))/(value_d);
- System.out.println("Public key(" + value_e + "," + res + ")");
- System.out.println("Private key(" + value_d + "," + res + ")");
- // int k = (value_e * value_d) % E_fn;
- // System.out.println(k); where result == 1
- return value_e;
- }
- }
- class EncryptText{
- String Encrypt(String value_alphabet,int value_e,int result_n) {
- // int value_x = 69; /*to check if the algorithm works*/
- // int result_x = 493;
- String toStringBigDec="";
- int[] numArr = Arrays.stream(value_alphabet.split(" ")).mapToInt(Integer::parseInt).toArray();
- for (int i = 0; i < numArr.length; i++) {
- BigDecimal bigDecimal = new BigDecimal(numArr[i]).pow(value_e);
- BigDecimal[] bigDecimal1 = bigDecimal.divideAndRemainder(new BigDecimal(result_n));
- toStringBigDec += bigDecimal1[1].toString() + " ";
- }
- return toStringBigDec;
- }
- }
- class DecryptText{
- String Dencrypt(String value_encrypt,int value_d,int result_n) {
- // int value_x = 13; /*to check if the algorithm works*/
- // int result_x = 493;
- String toStringBigDec="";
- int[] numArr = Arrays.stream(value_encrypt.split(" ")).mapToInt(Integer::parseInt).toArray();
- for (int i = 0; i < numArr.length; i++) {
- BigDecimal bigDecimal = new BigDecimal(numArr[i]).pow(value_d);
- BigDecimal[] bigDecimal1 = bigDecimal.divideAndRemainder(new BigDecimal(result_n));
- toStringBigDec += bigDecimal1[1].toString() + " ";
- }
- return toStringBigDec;
- }
- }
- public class CryptoLastName {
- public static void main(String[] args) {
- int value_p = 23;
- int value_q = 43;
- int value_d = 37;
- int result_n = value_p * value_q;
- Scanner in = new Scanner(System.in);
- System.out.print("Enter Test: ");
- String s = in.nextLine(); //"VASYLKIVSKIY OLEG " or your name, lastname
- String t = "";
- for (int i = 0; i < s.length(); ++i) {
- char ch = s.charAt(i);
- if (Character.isLetter(ch)) { // check if the character is a letter
- if (!t.isEmpty()) {
- t += " ";
- }
- int n = (int) ch - (int) 'A'; // if you want to check, then add 'A'+ 1. Where the beginning of the alphabet begins with 1
- t += String.valueOf(n);
- }
- }
- System.out.println("*******************************************");
- System.out.println(s); //Output of the text that was entered
- System.out.println(t);
- System.out.println("*******************************************");
- Eyler metod = new Eyler();
- int value_e = metod.EylerValue(value_p,value_q,result_n,value_d);
- System.out.println("*******************************************");
- EncryptText enc = new EncryptText();
- String Encrypt_value = enc.Encrypt(t,value_e,result_n);
- System.out.println("Encrypted text: " + Encrypt_value);
- DecryptText dec = new DecryptText();
- String Decrypt_value = enc.Encrypt(Encrypt_value,value_d,result_n);
- int[] numArr = Arrays.stream(Decrypt_value.split(" ")).mapToInt(Integer::parseInt).toArray();
- System.out.print("Decrypted text: ");
- for (int i = 0; i < numArr.length; ++i) {
- char c = (char)((int)'A' + numArr[i]);
- System.out.print(c + " ");
- }
- System.out.println();
- System.out.println("*******************************************");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement