Loops 如何多次运行加密程序以加强编码?
这是到目前为止我的代码。我需要运行编码部分的代码5次,然后解码编码相同的次数。我知道如何对消息进行编码,但现在我不知道如何通过代码运行“encode”或“decode”变量来加强加密Loops 如何多次运行加密程序以加强编码?,loops,encryption,for-loop,decode,encode,Loops,Encryption,For Loop,Decode,Encode,这是到目前为止我的代码。我需要运行编码部分的代码5次,然后解码编码相同的次数。我知道如何对消息进行编码,但现在我不知道如何通过代码运行“encode”或“decode”变量来加强加密 public class Codes { /** * Encode and decode a message using a key of values stored in * a queue. */ public sta
public class Codes
{
/**
* Encode and decode a message using a key of values stored in
* a queue.
*/
public static void main(String[] args)
{
int[] key = {7, 6, 5, 2, 8, 5, 8, 6, 4, 1};
Integer keyValue;
String encoded = "", decoded = "";
String message = "Queues are useful for encoding messages.";
Queue<Integer> encodingQueue = new LinkedList<Integer>();
Queue<Integer> decodingQueue = new LinkedList<Integer>();
// load key queues
for (int scan = 0; scan < key.length; scan++)
{
encodingQueue.add(key[scan]);
decodingQueue.add(key[scan]);
}
// encode message
for (int scan = 0; scan < message.length(); scan++)
{
keyValue = encodingQueue.remove();
encoded += (char) (message.charAt(scan) + keyValue);
encodingQueue.add(keyValue);
}
System.out.println ("Encoded Message:\n" + encoded + "\n");
// decode message
for (int scan = 0; scan < encoded.length(); scan++)
{
keyValue = decodingQueue.remove();
decoded += (char) (encoded.charAt(scan) - keyValue);
decodingQueue.add(keyValue);
}
System.out.println ("Decoded Message:\n" + decoded);
}
}
为了完成此程序,我需要输出如下所示:
Encoded Message 1: X{jwmx(gvf'{xgnzt&jpy&jpktlorh'sju{fokw/
Encoded Message 2: _?oyu}0mzg.?}iv•|,nq?,orsytuvi.yow?kwq{0
Encoded Message 3: f?t{}?8s~h5??k~??2rr?2tt{~|{zj5•ty?p•w•1
Encoded Message 4: m?y}??@y?i<??m???8vs?8yv????~k<?y{?u?}?2
Encoded Message 5: t?~•??H•?jC??o???>zt?>~x?????lC?~}?z???3
Decoded Message 5: m?y}??@y?i<??m???8vs?8yv????~k<?y{?u?}?2
Decoded Message 4: f?t{}?8s~h5??k~??2rr?2tt{~|{zj5•ty?p•w•1
Decoded Message 3: _?oyu}0mzg.?}iv•|,nq?,orsytuvi.yow?kwq{0
Decoded Message 2: X{jwmx(gvf'{xgnzt&jpy&jpktlorh'sju{fokw/
Decoded Message 1: Queues are useful for encoding messages.
编码信息1:X{jwmx(gvf'{xgnzt&jpy&jpktlorh'sju{fokw/
编码信息2:?oyu}0mzg.?}iv•|,nq?,orsytuvi.yow?kwq{0
编码信息3:f?t{}8s~h5??k~?2rr?2tt{{zj5•ty?p•w•1
编码消息4:m?y}???@y?izt?>~x?lC?~}?z???3
解码消息5:m?y}???@y?i如果对encode()
和decode()
操作使用单独的函数,这将更容易:
class Codes {
public static void main(String[] args) {
...
}
private static String encode(String plaintext, Queue<Integer> encodingQueue) {
...
}
private static String decode(String ciphertext, Queue<Integer> decodingQueue) {
...
}
}
类代码{
公共静态void main(字符串[]args){
...
}
私有静态字符串编码(字符串明文、队列编码队列){
...
}
专用静态字符串解码(字符串密文、队列解码队列){
...
}
}
这有帮助吗?请提供一点背景知识。告诉我们你期望什么,为什么,以及你得到了什么。否则我们将整天盯着代码看,得出结论,它正在做那里写的事情。多次运行该算法实际上并没有增强任何功能。它所做的只是为每个字符添加一个常量字符,如果您多次这样做,您只需更改有效添加的常量。例如:您通过添加7加密第一个字母,然后通过再次添加7加密结果。您只需添加14一次即可完成相同的操作。我在给出答案时误读了您的代码;我希望我的更新更有用。
class Codes {
public static void main(String[] args) {
...
}
private static String encode(String plaintext, Queue<Integer> encodingQueue) {
...
}
private static String decode(String ciphertext, Queue<Integer> decodingQueue) {
...
}
}