कोरजावा के खंड 6.4 में, लेखक सीज़र सिफर के बारे में एक कोड उदाहरण प्रस्तुत करता है, डिक्रिप्ट विधि में कोड 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; }
}
0
tetsuo 25 फरवरी 2020, 10:58
एक सीज़र सिफर तब होता है जब आप अक्षरों को एक कुंजी के अनुसार बदलते हैं। कुंजी निर्दिष्ट करती है कि आपको कितने वर्णों को स्थानांतरित करना है। जब आप अपने सिफर को डीकोड करते हैं तो आपको उतने ही वर्णों को वापस ले जाने की आवश्यकता होती है जितने आपने इसे एन्क्रिप्ट करते समय स्थानांतरित किए थे। जब एन्क्रिप्ट कुंजी 5 होती है तो डिक्रिप्ट कुंजी -5 होनी चाहिए। मैं कुंजी प्रकार को एक पूर्णांक में बदलने की अनुशंसा करता हूं क्योंकि आपको किसी भी तरह से दिए गए सरणी में केवल पहली प्रविष्टि की आवश्यकता होती है।
 – 
NtFreX
25 फरवरी 2020, 11:04

1 उत्तर

new byte[] { (byte) -key[0] } का अर्थ है एक नया बाइट सरणी जिसमें "कुंजी" सरणी का बाइट-कास्ट पहला तत्व ([0]) होता है, जिसका चिह्न उलटा हो रहा है (उदाहरण के लिए - )

1
nullPointer 25 फरवरी 2020, 11:21