Hash 是否有可能制作一个程序来查找输入消息,这些消息给出来自SHA-512的每个可能的512位字符串?

Hash 是否有可能制作一个程序来查找输入消息,这些消息给出来自SHA-512的每个可能的512位字符串?,hash,sha,sha512,sha2,Hash,Sha,Sha512,Sha2,由于可能的输入多于可能的输出(由于鸽子洞原理),有没有办法创建一个程序来创建消息以获得每个可能的输出值?从理论上讲,这是一个半可判定的问题,因此答案是“是的,如果每个SHA-512都存在这样的消息”。只要暴力地使用所有可能的字符串,逐渐增加长度,你就会得到它。检查每个散列是否有反向映像是另一个麻烦。没问题。如果你能做到每纳秒一次,只需要2^512纳秒。你只是有一个稍微尴尬的问题,宇宙将同时经历热死亡。因此,在无限的时间范围内,这在技术上是可能的?是的,你可以编写一个非常短的程序来实现这一点。最大

由于可能的输入多于可能的输出(由于鸽子洞原理),有没有办法创建一个程序来创建消息以获得每个可能的输出值?

从理论上讲,这是一个半可判定的问题,因此答案是“是的,如果每个SHA-512都存在这样的消息”。只要暴力地使用所有可能的字符串,逐渐增加长度,你就会得到它。检查每个散列是否有反向映像是另一个麻烦。没问题。如果你能做到每纳秒一次,只需要2^512纳秒。你只是有一个稍微尴尬的问题,宇宙将同时经历热死亡。因此,在无限的时间范围内,这在技术上是可能的?是的,你可以编写一个非常短的程序来实现这一点。最大的SHA-512消息的位长度为(2**64)-1。因此,尝试每一条位长度为0的消息,每一条位长度为1的消息,…,每一条位长度为(2**64)-1的消息,就完成了。