我是这里的新手,需要一些帮助。我这里有一个用于解密数据的代码。它正在工作意味着它可以解密数据,但问题是;它只能显示解密数据的 1 个值(第 29 行)而不是 3 个或更多取决于我想要它的方式(我如何让它也解密第 30 行和第 31 行的数据?)。下面我发布了我的问题的相关代码,希望这里的任何人都可以帮助我解决这个问题。
public class CipherUtils
{
static Log log = LogFactory.getLog(CipherUtils.class);
private static byte[] key = "xxxxxx".getBytes();
private static byte[] iv = "xxxxxx".getBytes();
public static String decrypt(String strToDecrypt)
{
try
{
//Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
Cipher cipher = Cipher.getInstance("aes/cbc/nopadding");
final SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
IvParameterSpec ips = new IvParameterSpec(iv);
//cipher.init(Cipher.DECRYPT_MODE, secretKey);
cipher.init(Cipher.DECRYPT_MODE, secretKey,ips);
final String decryptedString = new String(cipher.doFinal(Base64.decodeBase64(strToDecrypt)));
return decryptedString.trim();
}
catch (Exception e)
{
log.error("Error while decrypting : " + strToDecrypt , e);
}
return null;
}
public static void main(String args[]) throws Exception
{
String a = CipherUtils.decrypt("yXTVA6oG4kWOlvfKN/qXwa3VgEyiBu4kkgKh9WHt0s8="
,"yX7JI7IaExK3eBC6BU5RdCvkCrAAcyV3YTmHqYH5nG0="
,"yj56tfZEh3405yEwladp+ml/nk/h8Cx56XnP5Ycdeio=");
System.out.println(">>>"+a.trim());
}
}
提前致谢。
最佳答案
您的方法 decrypt 只接受一个参数(名为 strToDecrypt),但您传递了三个。
您可以在这里做几件事,最简单的方法是简单地调用 decrypt 3 次,每次使用不同的字符串。 您也可以重写列表以迭代列表。
关于java - 如何返回超过 1 个值的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211995/