gpt4 book ai didi

java - Java中使用递归方法的密码哈希链

转载 作者:行者123 更新时间:2023-12-01 08:50:56 24 4
gpt4 key购买 nike

我正在尝试实现一个简单的递归方法,该方法可以生成我指定的哈希n次的哈希值,即哈希链。这就是我到目前为止所拥有的。

import java.io.UnsupportedEncodingException;

public class RecursiveHash {
public static String generateHashChain(int hash_time, String password) throws UnsupportedEncodingException{
hash_time--;
if (hash_time == 1)
return Hash.generateHash(password);
return generateHashChain(hash_time,password);
}

public static void main(String[] args) {
try {
System.out.println(generateHashChain(2,"hello"));
System.out.println("Test");
System.out.println(Hash.generateHash((Hash.generateHash("hello"))));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Hash.generateHash 是生成哈希的实用方法。 hash_time 是我想要散列哈希的次数。然而,当我像上面那样测试它(散列两次)时,我得到了

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Test
d7914fe546b684688bb95f4f888a92dfc680603a75f23eb823658031fff766d9

我希望答案是一样的。关于做错了什么有什么想法吗?

最佳答案

System.out.println(generateHashChain(2,"hello"));

这将在 2 处启动该过程。

hash_time--;

现在位于1

   if (hash_time == 1)  
return Hash.generateHash(password);

1所以只进行一次哈希。

要解决您的问题:

 public static String generateHashChain(int hash_time, String password)  throws UnsupportedEncodingException{
if (hash_time == 1)
return Hash.generateHash(password);
return Hash.generateHash(generateHashChain(hash_time - 1,password));
}

关于java - Java中使用递归方法的密码哈希链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42412813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com