Итак, мой учитель поручил мне создать класс Customer с конструктором с 7 параметрами, одним из которых является строковая переменная password, которая должна быть зашифрована с помощью метода encrypt () внутри конструктора, чтобы гарантировать все пароли зашифрованы при создании нового объекта Customer. Метод encrypt () должен использовать простой шифр замещения и 2 массива stati c для хранения обычного алфавита и алфавита зашифрованного текста, содержащих прописные, строчные буквы и цифры 0-9. Мне дали интерфейс под названием Encryptable, который требует определения метода publi c void encrypt () для шифрования и метода publi c String decrypt () для возврата String дешифрованного пароля. При вызове метода encrypt () в конструкторе я получаю сообщение об ошибке «Cannot Find Symbol - method encrypt ()». Поскольку метод определен четко, я не понимаю, откуда возникла ошибка. Любые идеи? Кроме того, поскольку я еще не смог скомпилировать, я не знаю, правильно ли шифрует пароли метод шифрования, поэтому, если вы обнаружите какие-либо проблемы в этом отношении, не стесняйтесь, дайте мне знать.
public class Customer implements Encryptable
{
private String customerID;
private String lastName;
private String firstName;
private String email;
private String userName;
private float balance;
private String password;
private boolean encrypted = false;
String[] plaintext = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O",
"P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i",
"j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "1", "2", "3",
"4", "5", "6", "7", "8", "9", "0"};
String[] ciphertext= {"p", "0", "o", "9", "i", "8", "u", "7", "y", "6", "t", "5", "r", "4", "e",
"3", "w", "2", "q", "1", "l", "k", "j", "h", "g", "f", "d", "s", "a", "m", "n", "b", "v", "c", "x",
"z", "P", "O", "I", "U", "Y", "T", "R", "E", "W", "Q", "L", "K", "J", "H", "G", "F", "D", "S", "A",
"M", "N", "B", "V", "C", "X", "Z"};
public Customer(String customerID, String lastName, String firstName, String email, String
userName, float balance, String password)
{
this.customerID = customerID;
this.lastName = lastName;
this.firstName = firstName;
this.email = email;
this.userName = userName;
if (balance > 0)
{ this.balance = balance; }
this.password = password.encrypt();
}
public void encrypt()
{
if (!encrypted)
{
String tempEncryptedPassword = "";
for (int i = 0; i < password.length(); i++)
{
int j = 0;
while (!(plaintext[j].contains(password.substring(j))))
{
j++;
if (plaintext[j].contains(password.substring(j)))
{
tempEncryptedPassword += ciphertext[j];
}
}
}
this.password = tempEncryptedPassword;
this.encrypted = true;
}
}
final public String getCustomerID()
{ return this.customerID; }
final public String getFirstName()
{ return this.firstName; }
final public String getLastName()
{ return this.lastName; }
final public String getPassword()
{ return this.password; }
final public String decrypt()
{
String tempEncryptedPassword = "";
if (encrypted)
{
for (int i = 0; i < password.length(); i++)
{
int j = 0;
while (!(ciphertext[j].contains(password.substring(j))))
{
j++;
if (ciphertext[j].contains(password.substring(j)))
{
tempEncryptedPassword += plaintext[j];
break;
}
}
}
}
return tempEncryptedPassword;
}
final public String toString()
{
String info = "";
info = ("\n============ Customer Information ============");
info += ("\n\t* Customer Name: " + firstName + " " + lastName);
info += ("\n\t* Customer ID Number: " + customerID);
info += ("\n\t* Customer Email: " + email);
info += ("\n\t* Customer Balance: " + balance);
return info;
}
}