#!/usr/bin/perl -w use strict; # This is public domain code. Do whatever you want with it. # It was originally included in Clinton Wong's Apache 1.3.6 SHA1/ldif # patch distribution as sample code for converting accounts from # ldif format (as used by Netscape web servers) to Apache password format. my $uid=''; my $passwd=''; while (my $line = <>) { chomp $line; if ( $line =~ /uid:\s*(.+)/) { $uid = $1 } if ( $line =~ /userpassword:\s*(\{\w+\}.+)/) { $passwd = $1; $passwd =~ s/^\{crypt\}//i; # Apache stores crypt without a magic string } if (length($line)==0) { if (length $uid and length $passwd) { print $uid, ':', $passwd, "\n"; } # output if we have something to print $uid = ''; $passwd = ''; } # if newline } # while something to read # handle last entry if there isn't a newline before EOF if (length $uid and length $passwd) { print $uid, ':', $passwd, "\n"; }