【发布时间】:2015-04-28 08:47:57
【问题描述】:
我对编程很陌生,这个让我摸不着头脑。
嗯,更像是在敲我的头。
这个程序的想法是取一个输入,将其转换为 ASCII,然后转换为十六进制,然后创建一个随机字符,将其插入到第一个十六进制字符之后,取第二个十六进制字符,然后在之后插入另一个随机字符第二个十六进制字符。
例如:randChar1 + hexString 的第一个字符 + randChar2 + hexString 的第二个字符
例如,
“asdf”的十六进制代码是 61736466。我需要做的是将 61 从组中分离出来,插入随机字符,即“R,u”,使其在第一个和第三个位置显示“6R1u”字符是一个单独的十六进制代码。我不太确定如何做到这一点,因为字符串是不可变的,而且我真的觉得它很荒谬。从字面上看,我已经搜索了数百个论坛,但还没有遇到一个像这个问题那样具体的论坛。
除了插入随机字符之外,我需要做的是获取由 4 个字符组成的新字符串,并遍历每个十六进制代码,我也不知道该怎么做。
即
取 61,在索引 1 和 3 处添加随机字符,取 73,重复添加字符,并为单词的长度执行此操作。
我对如何做到这一点感到非常困惑,当你没有丝毫线索时,坐在这里试图弄清楚这样的事情真是令人沮丧。
很抱歉,如果我的措辞不正确或使这听起来令人困惑。
这基本上是我们教授给我们的伪代码,但是我做了很多修改,所以这些代码都不是最终的,一半仍然是伪代码。
再次道歉,如果这是糟糕的措辞和格式,这是我的第一篇文章。我真的只关心让加密工作,我现在不担心解密。
如果有人能指出我正确的方向,那就太好了,我可以编写代码使程序能够达到这种程度:
(randChar1 + hexString 的第一个字符 + randChar2 + hexString 的第二个字符):给我一个 4 字符的字符串,只包含一个十六进制代码。打破每个两位数十六进制并在其间添加随机字符,并遍历每个十六进制代码,在索引 2 和 4 处以相同方式添加随机字母,直到所有十六进制代码都已转换为 4 字符“加密”字符串
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package encryptionprogram;
import java.util.Random;
import java.util.Scanner;
/**
*
* @author Elliott Cade
*/
public class EncryptionProgram
{
public static void main(String[] args)
{
// TODO code application logic here
Scanner sc = new Scanner(System.in);
String plainText, encryptedText, decryptedText, asciiValue, ASCII;
System.out.print("Enter message: ");
plainText = sc.nextLine(); //takes user input
asciiValue= plainText;
System.out.println();
System.out.println("Encrypted message");
encryptedText = EncryptCharacter(asciiValue);
System.out.println(encryptedText); //disregard
System.out.println();
System.out.println("Decrypted message:");
decryptedText = DecryptMessage(encryptedText); //disregard
System.out.println(decryptedText);
ASCII = EncryptCharacter(asciiValue);
}
public static String EncryptMessage(String plainText)
{
encryptedMsg =
{ //disregard all
}
{
encryptedChar = EncryptCharacter(plainText.charAt(i));
encryptedMsg = encryptedMsg + encryptedChar;
}
Return encryptedMsg
}
public static String DecryptMessage(String encryptedText)
{ String decryptedMsg,encryptedLetter;
decryptedMsg = “”
for each group of 4 characters character in encryptedText
{
encryptedLetter = encryptedText.substring 4 characters
decryptedChar = DecryptCharacter(encryptedLetter);
encryptedMsg = encryptedMsg + decryptedChar;
}
return decryptedMsg;
}
private static String EncryptCharacter(String asciiValue)
{
char[] chars = asciiValue.toCharArray();
StringBuilder hex = new StringBuilder();
for (int i = 0; i < chars.length; i++) //takes input and converts it to hex format
hex.append(Integer.toHexString((int) chars[i]));
System.out.println();
{
}
return hex.toString();
}
public static char DecryptCharacter(String encryptedCharacter)
{
// You need to implement this function
decryptedChar = char1 + char3
ASCIICode = convert hexadecimal decryptedChar to an ASCII decimal code
decryptedChar = convert ASCII code to a character
return decryptedChar;
}
}
【问题讨论】:
标签: java