Olá Especialistas,
Sou bastante novo em scripts Groovy. Estou usando um script para realizar decodebase64 em uma string e fazer Messagedigest SHA1 nos dados. Consegui obter o seguinte código, mas não está funcionando.
import java.security.*;
def Message processData(Message message)
{
//Corpo def body = message.getBody(String.class);
String decoded = body.bytes.decodeBase64().toVarchar();
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
byte[] digest = sha1.digest(decode.getBytes());
digest = new BigInteger(1, digest).toString(16);
message.setBody(digest);
return message;
}
A entrada seria:
kIAUQJVfhfLaTF2G4WouvCmZqA2zhFhujfqe3g1I4WBJobFrBWcXKG5XoPM1MQZF9UeoM0o99tf8FHVEkEIkN1s0Pw7vXyHurkbiY/Dic56Fqa+PovU9gU4US+oLHoEMSpoDMtrVtAskS0h6bCgv1Hph/1QHTlVeto/GIw0Obb9CtSqlfhoXL8ZqCBMlsWClF8q31PZaD4vt8ZRzjm/fnA1YsH8Fo5PfxdWFEVrsprvDyUHuRvr0CHbDyE7qszgYA+Ri0ylnulPEqOlsBvNpiXoiEtoOnFOjZrWmLCM6IjnR8b2efnTRQsELdYr3FjRbg1kLDz3xUDGBwTplF31CSw==
Após decodificar, a entrada contém caracteres unicode. Não consigo chegar a ela. Após SHA1, a saída terá 40 caracteres.
Não consigo alcançar isso com funções padrão porque a saída da função de decodificação padrão tem caracteres Unicode.
Vocês poderiam me ajudar, por favor?
Saudações,
Rajesh