是否可以解密一些用Java的SHA-1算法加密过的字符串?
SHA1是一种加密哈希函数,其全部要点是您无法撤消它。如果可以反转哈希值(为给定哈希值查找输入),它将没有用。如果您需要加密某些东西然后再解密,则应该使用AES或RSA之类的加密功能。
但是,对于非常简单的输入,可以通过猜测输入是什么并检查哈希是否相同来破解哈希函数。
示例Python代码:
def crack_hash(hash_to_crack, hash_function, list_of_guesses):
# Try to hash everything in our guess list
for guess in list_of_guesses:
new_hash = hash_function(guess)
# if the hashes match, we found it
if new_hash == hash_to_crack:
return guess
# If none of them match, give up
return None
当然,如果您实际上想有效地破解哈希,那么使用像The Ripper或Hashcat之类的软件可能是最好的选择。请注意,这通常适用于密码,因为它们很短而且很容易猜到,但是随着输入的增加,难度成倍增加。您可以在几分钟之内用6个字符的输入破解每个SHA-1哈希,而用16个字符破解一个SHA-1哈希平均平均需要数万亿年。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句