作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
是否有可能解密一些先前在 Java 中使用 SHA-1 算法加密的字符串?
最佳答案
SHA1 是一个 cryptographic hash function ,关键是你无法撤消它。如果可以反转散列(找到给定散列的输入),它就没有用了。如果你需要加密一些东西然后解密,你应该使用 encryption function喜欢AES 或 RSA .
但是,对于非常简单的输入,可能会 crack the hash function通过猜测输入是什么并检查散列是否相同。
示例 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
当然,如果你真的想有效地破解哈希值,可以使用像 John the Ripper 这样的软件。或 Hashcat可能是你最好的选择。请注意,这通常适用于密码,因为它们很短且容易猜到,但随着输入的增加,难度呈指数级增加。您可以在几分钟内破解每个 6 个字符输入的 SHA-1 哈希,而破解一个 16 个字符的哈希平均需要数万亿年。
关于java - 如何在 Java 中解密 sha1 加密的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7735474/
我是一名优秀的程序员,十分优秀!