我正在尝试创建一个密码破解程序,用于加密可能的密码并将其与假用户密码进行比较。要做到这一点,我需要使用crypt函数*,如果我使用c,这很容易,但我使用的是java。有同等的选择吗?如果是这样,我在哪里可以下载?
*在你告诉我它不安全之前,我知道。我将它用于实验室,而不是实际的验证系统。
答案 0 :(得分:2)
假设您正在谈论glibc2中可用的版本,它支持的不仅仅是DES加密:不仅是加密,还包括加密摘要。
理论上,您可以调查crypt()
的实现细节,以模仿其在Java中的行为。加密通常使用Cipher
类完成,摘要将使用MessageDigest
类完成。你会发现你需要的算法可以与Oracle / OpenJDK JRE(以及其他人)一起提供的SUN and SunJCE providers一起使用。
正确获取详细信息可能需要进行一些调查(例如,了解如何使用盐)。
您也可以直接使用Apache Commons Codecs Crypt
类,该类专门用于与GNU libc crypt(3)兼容。
答案 1 :(得分:1)
我假设您正在使用此隐藏功能(http://www.gnu.org/software/libc/manual/html_node/crypt.html)
首先,如果你需要编写完全等效的代码,你需要找到这个函数在内部是如何工作的。
以下是DES加密的示例(由crypt使用): http://www.exampledepot.com/egs/javax.crypto/desstring.html
以下是MD5哈希(可以由crypt使用)的示例: http://www.mkyong.com/java/java-md5-hashing-example/