如何按顺序显示解密和拆分的字符串?

时间:2010-04-29 07:19:22

标签: java split encryption aes

我需要一些帮助和指导,以便按顺序显示拆分的字符串。

比方说,我有用户名,密码,nonceInString 。我成功加密并解密了那些。然后我拆分解密的数据。它也完成了。

我想按顺序显示解密数据。 这样的事情。

userneme:sebastian
密码:harrypotter
nonce值:sdgvay1saq3qsd5vc6dger9wqktue2tz *

我尝试了以下代码,但它没有像我希望的那样显示 请帮助。非常感谢。

String codeWord = username + ";" + password + ";" + nonceInString;
String encryptedData = aesEncryptDecrypt.encrypt(codeWord);
String decryptedData = aesEncryptDecrypt.decrypt(encryptedData);
String[] splits = decryptedData.split(";");
String[] variables = {"username", "password", "nonce value"};
for (String data : variables){
    for (String item : splits){
        System.out.println( data + ": "+ item);
    }
}

2 个答案:

答案 0 :(得分:4)

你的嵌套for-each逻辑是错误的;相反,您需要通过索引显式地配对数组的元素:

for (int i = 0; i < variables.length; i++) {
   System.out.println(variables[i] + ":" + splits[i]);
}

请注意,这假设两个数组的长度相同,如果splits数组比variables数组短,则会抛出ArrayIndexOutBoundsException


作为旁注,对于键值映射数据结构,您可能需要查看java.util.Map

import java.util.*;

//...

Map<String,String> map = new HashMap<String,String>();
map.put("username", "sebastian");
map.put("password", "harrypotter");
System.out.println(map); // prints "{username=sebastian, password=harrypotter}"
System.out.println(map.get("password")); // prints "harrypotter"

答案 1 :(得分:0)

多数民众赞成因为你的内部循环将遍历变量中每个元素的分裂中的所有值。

我假设你有类似

的东西
username ..
username .. 
username ..
password ..
pa....