我是一個新手,需要一些幫助。我在這裏有一個用於解密數據的代碼。它的工作意味着它可以解密數據,但問題是;它只能顯示解密數據(第29行)的1個值,而不是3個或更多,取決於我想要它的方式(我怎樣才能解密第30行和第31行的數據?)。下面我發佈了相關的代碼給我的問題,希望這裏的任何人都可以幫助我解決這個問題。如何返回超過1個字符串的值?
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());
}
}
在此先感謝。
好.....所以你想解密多個字符串,然後你想要什麼作爲回報?你想連接三個解壓字符串的結果,或者首先你想連接三個字符串然後解密? –
我不想連結結果,我只是想單獨解密它,並顯示所有結果。 – StrikeNeo