Gwt-cryptoを使っていくつかの本当に奇妙なエラーが発生しています。Gwt Crypto - 復号化に時間がかかりすぎるために発生する奇数例外?
public long loadIdFromPref(){
Preferences preferences = Gdx.app.getPreferences(HelperKeys.Preferences.GAME_PREFS);
String secret = decryptString("ab0c441ca9dbd026bbb98a588e7d34d579dd00c326fbd38a");
Long value = Long.parseLong(secret);
return value;
}
DecryptString方法:私は、私は次の操作を行い好みからplayerIdをロードしようとすると
private String decryptString(String string)
{
try
{
string = getEncryptor().decrypt(string);
}
catch (DataLengthException e)
{
e.printStackTrace();
} catch (IllegalStateException e)
{
e.printStackTrace();
} catch (InvalidCipherTextException e)
{
e.printStackTrace();
}
return string;
}
時間の約30%私は次のエラーを取得する:
java.lang.NumberFormatException: For input string: "53096146ン8}+ン│ ̄"
at java.lang.Long.parseLong(Long.java:589)
at java.lang.Long.parseLong(Long.java:631)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
時にはうまく動作し、他のものではないという事実は、復号化には時には時間がかかり、コードが完了する前にコードが継続していると私に信じさせます。これはそれかもしれませんか?それについて私は何ができますか?
私は再作成するのは難しい時間の5%程度別のエラーを取得:
InvalidCipherTextException: pad block corrupted
は、それが何を意味するのかわからない、あまりにもその上の任意の情報をappriciateだろう。
setEncryptor(new TripleDesCipher());
ripleDesKeyGenerator generator = new TripleDesKeyGenerator();
byte[] key = generator.decodeKey("jdkreur74832904ufke3382r2o3ijf9w");
getEncryptor().setKey(key);
あなたは助けるために多くの情報が必要な場合は私に知らせてください:
は参考のために、ここで私はencryptor
を開始する方法です。
decryptString()を同期させることで修正しました。それが終わるのを待っていなかった。 HEX値である必要はありません。 –
@Green_qaue私の答えを確認してください。 – xycf7