Проблема понимания кода в ядре java книга (11ed) раздел 6.4 - PullRequest
0 голосов
/ 25 февраля 2020

В разделе 6.4 ядра java автор вводит пример кода о шифре Цезаря, что означает код new byte[] { (byte) -key[0] } в методе расшифровки ???

package serviceLoader;
public interface Cipher
{
byte[] encrypt(byte[] source, byte[] key);
byte[] decrypt(byte[] source, byte[] key);
int strength();
}

package serviceLoader.impl;
public class CaesarCipher implements Cipher
{
public byte[] encrypt(byte[] source, byte[] key)
{
var result = new byte[source.length];
for (int i = 0; i < source.length; i++)
result[i] = (byte)(source[i] + key[0]);
return result;
}
public byte[] decrypt(byte[] source, byte[] key)
{
return encrypt(source, new byte[] { (byte) -key[0] });
}
public int strength() { return 1; }
}

1 Ответ

1 голос
/ 25 февраля 2020

new byte[] { (byte) -key[0] } означает новый байтовый массив, содержащий 1-й элемент ([0]) массива «ключа» с байтовым байтом, знак которого инвертируется (например, -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...