Para mi propio entendimiento de las claves LTPA de Websphere, estoy ejecutando este código Java , que funciona correctamente cuando se utiliza la codificación codificada en Base64 del autor, SHA1 hash password:
String ltpa3DESKey = "IpGJOdpSxV3J8yWAuB+UiUlYCK7sAzSfENE5MLT2q+s=";
pero falla al usar el mío:
String ltpa3DESKey = "ExGKSrGQPGN+q0GE1GlFhK7BB8bLB0mEp9ec1Vzxv8A\=";
error:
Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \ )
Pero si me escapo:
String ltpa3DESKey = "ExGKSrGQPGN+q0GE1GlFhK7BB8bLB0mEp9ec1Vzxv8A\=";
me sale:
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)
He leído los conceptos básicos del artículo de Wikipedia de Base64, pero aparentemente las barras invertidas no forman parte del alfabeto Base64. ¿Alguna idea sobre cómo proceder?