{
    use MIME::Base64 qw(encode_base64);

    my $service;
    my $rec;
    my $pw;

    # Store the cacti password in the configuration database (if not already there)
    $service = 'cacti';

    $rec = $DB->get($service) || $DB->new_record($service, {type => 'service'});

    $pw = $rec->prop('DbPassword');
    

	if (! $pw)
    	{
		
		if ( open( RANDOM, "/dev/urandom" ) )
	    	{
        		my $buf;
		        # 57 bytes is a full line of Base64 coding, and contains
		        # 456 bits of randomness - given a perfectly random /dev/random
	       		if ( read( RANDOM, $buf, 57 ) != 57 )
	        	{
	        	    warn("Short read from /dev/random: $!");
	        	}
	        	else
	        	{
	            		$pw = encode_base64($buf);
	        	    chomp $pw;
	        	}
	        	close RANDOM;
	    	}
	    	else
	    	{
	    	    warn "Could not open /dev/urandom: $!";
	    	}
		
	    	$rec->set_prop('DbPassword', $pw);
	}
    $pwa = $rec->prop('AdminPassword');
        if (! $pwa)
        {

                if ( open( RANDOM, "/dev/urandom" ) )
                {
                        my $buf;
                        # 57 bytes is a full line of Base64 coding, and contains
                        # 456 bits of randomness - given a perfectly random /dev/random
                        if ( read( RANDOM, $buf, 15 ) != 15 )
                        {
                            warn("Short read from /dev/random: $!");
                        }
                        else
                        {
                                $pwa = encode_base64($buf);
                            chomp $pwa;
                        }
                        close RANDOM;
                }
                else
                {
                    warn "Could not open /dev/urandom: $!";
                }

                $rec->set_prop('AdminPassword', $pwa);
        }



}
