PHP中的Freeradius radcrypt加密

PHP中的Freeradius radcrypt加密,php,passwords,crypt,freeradius,Php,Passwords,Crypt,Freeradius,我正在寻找一个类似于radcrypt输出的PHP解决方案 我已经调查了mcrypt,似乎无法确定应该使用哪种密码和设置 Mcrypt希望在加密中添加一种盐,但radcrypt似乎没有盐 有人知道radcrypt的密码和/或设置是什么吗?你不需要mcrypt。这些密码是散列的,不是加密的 radcrypt脚本为。它依赖于Perl,其语义类似于 PHP。在5.3之前,PHP使用相同的精确功能,以相同的精确方式调用,生成相同的哈希。从5.3开始,PHP的实现与该语言捆绑在一起,而不是依赖外部库,从而允

我正在寻找一个类似于radcrypt输出的PHP解决方案

我已经调查了mcrypt,似乎无法确定应该使用哪种密码和设置

Mcrypt希望在加密中添加一种盐,但radcrypt似乎没有盐


有人知道radcrypt的密码和/或设置是什么吗?

你不需要mcrypt。这些密码是散列的,不是加密的

radcrypt
脚本为。它依赖于Perl,其语义类似于

PHP。在5.3之前,PHP使用相同的精确功能,以相同的精确方式调用,生成相同的哈希。从5.3开始,PHP的实现与该语言捆绑在一起,而不是依赖外部库,从而允许添加和增强

radcrypt
脚本自动生成salt,DES使用两个字符,MD5使用八个字符:

$salt = ($opt_md5 ? '$1$' : '');
for ($i = 0; $i < ($opt_md5 ? 8 : 2); $i++) {
    $salt .= $saltc[rand 64];
}
$salt .= '$' if ($opt_md5);
print crypt($ARGV[0], $salt), "\n";
顺便说一句,该代码在Perl和PHP中都是有效的


请务必阅读上面的维基百科文章,特别是有关密码安全的部分。DES和MD5哈希都不能抵御暴力攻击。除非只有支持这两种散列类型(例如,我不知道,FreeRADIUS)的东西要求您使用这两种方法,否则您不应该使用这两种方法。

FreeRADIUS不需要这一点,它支持许多其他散列。这是一个非常好的解决方案,应该用于通过PHP+1000插入加密密码的每个人。感谢您提供的非常有用和详细的信息。为我工作!
$hash = '$1$iamasalt$RSUhkOk5NVnvbM3BPw/g8/';
$password = 'password';
if($hash == crypt($password, $hash)) {
    print "Passwords matched.\n";
}