Вы хотите получить соль, потому что пытаетесь хешировать пароли? Если это так, рассмотрите jBCrypt , безопасную, действительно простую в использовании библиотеку хеширования паролей. Вы можете легко подключить его как метаметод Groovy-строки. : -Р
А если вы не хешируете пароль, я не уверен, куда соль может попасть; пожалуйста, не стесняйтесь уточнять в этом случае. : -)
Пример использования HMAC для хеширования по ключу (в моем примере я использовал HmacMD5
, но вы также можете использовать HmacSHA1
, HmacSHA256
, HmacSHA384
или HmacSHA512
):
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
public byte[] hmacMD5(byte[] key, byte[] data) {
Mac mac = Mac.getInstance("HmacMD5");
mac.init(new SecretKeySpec(key, "HmacMD5"));
mac.update(data);
return mac.doFinal();
}
Извините, что это на Java, а не на Groovy, но, надеюсь, вам будет легко адаптироваться. :-) В любом случае, в этом примере ваше постоянное значение будет ключом, а входящие данные будут данными.
Если ваши данные имеют большой размер (маловероятно из того, что вы описали), вы можете вызывать update
несколько раз, и хэш будет работать так, как если бы данные этих вызовов были объединены вместе.