Raga wrote:
Hi,
When I run an application with IBM's JDK, am getting the following
exception:
"java.lang.SecurityException: SHA MessageDigest not available"
Any idea on how to create support for this Message Digest algo? One way
is to use provider, I guess. But I don't know how to use a provider &
where to get it from. Any suggestions/thoughts?
Thanks.
You must be deploying to WebSphere ;)
I recommend using the BouncyCastle libraries.
http://www.bouncycastle.org
Then something simple like the following should get you started:
Add these imports:
import java.security.MessageDigest;
import java.security.Security;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
Put this block somewhere in your class:
static {
Security.addProvider(new BouncyCastleProvider());
}
Try this sample hash method:
public static byte[] hashGenerator(String token, String[] vals)
{
byte[] hash = new byte[0];
try
{
MessageDigest digest = MessageDigest.getInstance("SHA","BC");
digest.update(token.getBytes());
for (int i = 0; i < vals.length; i++)
{
digest.update(vals[i].getBytes());
}
hash = digest.digest();
} catch (Exception e) {
throw new RuntimeException("Failed to generate secure hash",e);
}
return hash;
}