Per la mia comprensione delle chiavi di Websphere LTPA, sto eseguendo questo codice Java , che funziona correttamente quando si utilizza la codifica Base64 dell'autore, la password con hash SHA1:
String ltpa3DESKey = "IpGJOdpSxV3J8yWAuB+UiUlYCK7sAzSfENE5MLT2q+s=";
ma fallisce quando si utilizza il mio:
String ltpa3DESKey = "ExGKSrGQPGN+q0GE1GlFhK7BB8bLB0mEp9ec1Vzxv8A\=";
Errore:
Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \ )
Ma se mi sfugge:
String ltpa3DESKey = "ExGKSrGQPGN+q0GE1GlFhK7BB8bLB0mEp9ec1Vzxv8A\=";
Ottengo:
javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:991)
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:847)
at com.sun.crypto.provider.DESedeCipher.engineDoFinal(DESedeCipher.java:294)
at javax.crypto.Cipher.doFinal(Cipher.java:2165)
at com.me.ltpa.LtpaToken.decrypt(LtpaToken.java:79)
at com.me.ltpa.LtpaToken.getSecretKey(LtpaToken.java:62)
at com.me.ltpa.LtpaToken.decryptLtpaToken(LtpaToken.java:110)
at com.me.ltpa.LtpaToken.getInstance(LtpaToken.java:118)
at com.me.ltpa.LtpaToken.main(LtpaToken.java:139)
Ho letto le basi dell'articolo Base64 di Wikipedia, ma apparentemente i backslash non fanno parte dell'alfabeto Base64. Qualche idea su come procedere?