我正在尝试创建一个密码破解程序来加密可能的密码并将它们与假用户密码进行比较。为此,我需要使用 crypt 函数*,如果我使用 c,这将很容易,但我使用的是 java。有没有等价的选择?如果是这样,我在哪里可以下载它?
*在你告诉我它不安全之前,我知道。我将它用于实验室,而不是实际的验证系统。
我正在尝试创建一个密码破解程序来加密可能的密码并将它们与假用户密码进行比较。为此,我需要使用 crypt 函数*,如果我使用 c,这将很容易,但我使用的是 java。有没有等价的选择?如果是这样,我在哪里可以下载它?
*在你告诉我它不安全之前,我知道。我将它用于实验室,而不是实际的验证系统。
假设您谈论的是 glibc2 中可用的版本,它支持的不仅仅是 DES 加密:不仅是加密,还有加密摘要。
crypt()
理论上,您可以研究在 Java 中模仿其行为的实现细节。加密通常使用Cipher
类完成,而摘要将使用MessageDigest
类完成。您会发现Oracle/OpenJDK JRE(可能还有其他)附带的SUN 和 SunJCE 提供程序提供了您需要的算法。
获得正确的细节可能需要进行一些调查(例如,找出盐的使用方式)。
您也可以直接使用Apache Commons CodecsCrypt
类,该类专门用于与 GNU libc crypt(3) 兼容。
我假设您正在使用这个 crypt 函数(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/