是否有一个模拟C的crypt函数的java函数?

时间:2012-10-16 21:46:06

标签: java c encryption cryptography crypt

我正在尝试创建一个密码破解程序,用于加密可能的密码并将其与假用户密码进行比较。要做到这一点,我需要使用crypt函数*,如果我使用c,这很容易,但我使用的是java。有同等的选择吗?如果是这样,我在哪里可以下载?

*在你告诉我它不安全之前,我知道。我将它用于实验室,而不是实际的验证系统。

2 个答案:

答案 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/