Java 如何从我的代码中加密文本?
我已经将此代码用于加密文本并将新文本放置在TextView中。我当时正在想办法做几件事Java 如何从我的代码中加密文本?,java,encryption,for-loop,char,Java,Encryption,For Loop,Char,我已经将此代码用于加密文本并将新文本放置在TextView中。我当时正在想办法做几件事 如何使每个字母=
C=Integer.valueOf(CESARNR);
String initialString=yourString.getText().toString();
char[]chars=initialString.toCharArray();
对于(int i=0;i
我相信您希望对前3个字母中的每一个使用不同的Ceasar键,然后对下一组三个字母重复相同的Ceasar键,依此类推,对吗 我不能100%确定如何处理不仅仅是我经常处理的字母表中的标准26个字符,但处理这个问题的一种方法是按照列表中的字符顺序列出一个列表。如果这样做,请确保将字符串切换为所有小写,这样,如果有大写字母,就不会出现匹配错误 请不要,我无法测试下面的代码,因此其中可能很容易出现错误(包括语法错误),我认为它应该可以工作,但您应该能够使它更优雅(例如,for中的那些if都有点难看),并且应该将一些内容移到它们自己的方法中
List<String> characters = new ArrayList<String>();
...Fill the List with the alphabet in order here (best to do in it's own method)
String initialString = yourString.getText().toString().toLowercase();
char[] chars = initialString.toCharArray();
for (int i = 1; i <= chars.length; i++) {
C = Integer.valueOf(ceasarNr1);
if ( i%2 ==0 ) C = Integer.valueOf(ceasarNr2);
if ( i%3 ==0 ) C = Integer.valueOf(ceasarNr3);
chars[i-1] = characters.get((characters.indexOf(chars[i-1]) + C)%29);
}
String resultString = new String(chars);
krypteredeTekst.setText(resultString);
List characters=new ArrayList();
…在列表中按顺序填写字母表(最好使用自己的方法)
String initialString=yourString.getText().toString().toLowercase();
char[]chars=initialString.toCharArray();
对于(int i=1;我想知道答案:)我会在下班回家后测试它^^我曾尝试在我的代码中插入它,但它在“characters.get”((characters.indexOf(chars[i-1])+C)%29)处说“不能从字符串转换为字符”;它还说它不能在字符串上使用.toLowerCase():PtoLowerCase()应该在字符串上工作,字符串到字符的转换只是我搞砸了,哈哈。我想这是编码字符插入字符数组的那一行。就像我说的,我没有编译或测试这个,所以我肯定会有错误。只要切换,从字符切换到字符串(或从字符串切换到字符),在任何地方它都会抱怨。最简单的方法是简单地将列表变成一个列表并处理它。请注意,这是字符包装器对象的列表,而不是字符基元类型当前代码有什么问题?
List<String> characters = new ArrayList<String>();
...Fill the List with the alphabet in order here (best to do in it's own method)
String initialString = yourString.getText().toString().toLowercase();
char[] chars = initialString.toCharArray();
for (int i = 1; i <= chars.length; i++) {
C = Integer.valueOf(ceasarNr1);
if ( i%2 ==0 ) C = Integer.valueOf(ceasarNr2);
if ( i%3 ==0 ) C = Integer.valueOf(ceasarNr3);
chars[i-1] = characters.get((characters.indexOf(chars[i-1]) + C)%29);
}
String resultString = new String(chars);
krypteredeTekst.setText(resultString);