我想使用gnu.crypto.hash.Whirlpool哈希加密一个字符串。
加密应该加密密码并返回加密的pwd。加密(Pwd);
这种方法应该具有使用gnu罐和漩涡加密pwd的实现。 哈希算法,它应该等于下面的站点http://hash.online-convert.com/whirlpool-generator生成的pwd
我尝试使用下面的代码,但无法获得与生成的漩涡站点类似的512位代码:
import gnu.crypto.hash.HashFactory;
import gnu.crypto.hash.IMessageDigest;
public class EncryptPwdWithAPI{
public static void main(String arg[])
{
encrypt("somepwd");
}
public static String encrypt(String password)
{
IMessageDigest md = HashFactory.getInstance("WHIRLPOOL");
md.update(input, 0, input.length);
byte[] digest = md.digest();
System.out.println( "Input : "+new String(input)+ "\nPWD : "+new String(digest)
}}
发布于 2012-08-13 16:58:35
Ya正确,但我期望漩涡有512字节的代码,等于在线哈希码生成器生成的代码。--我用 JacksumAPI获得了预期的输出。
下面是一些代码:
import java.security.NoSuchAlgorithmException;
import jonelo.jacksum.JacksumAPI;
import jonelo.jacksum.algorithm.AbstractChecksum;
public class JacksumTest {
public static void main(String arg[])
{
String password = "somepwd";
AbstractChecksum checksum = null;
try {
checksum = JacksumAPI.getChecksumInstance("whirlpool");
checksum.update(password.getBytes());
System.out.println(checksum.getFormattedValue());
} catch (NoSuchAlgorithmException nsae) { }
}
}发布于 2012-08-13 12:38:10
@Eelke是正确的,但是您是这样做的,编码密码应该在结果变量中。
IMessageDigest oldencoder = HashFactory.getInstance(Registry.WHIRLPOOL_HASH);
byte[] input = password.getBytes();
oldencoder.update(input, 0, input.length);
byte[] digest = oldencoder.digest();
result = gnu.crypto.util.Util.toString(digest).toLowerCase();https://stackoverflow.com/questions/11921334
复制相似问题