Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1517358
  • 博文数量: 289
  • 博客积分: 11086
  • 博客等级: 上将
  • 技术积分: 3291
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-22 17:06
个人简介

徐小玉的博客。

文章分类

全部博文(289)

文章存档

2023年(6)

2022年(1)

2021年(2)

2020年(9)

2019年(9)

2018年(6)

2017年(10)

2016年(10)

2014年(3)

2013年(4)

2011年(12)

2010年(16)

2009年(14)

2008年(119)

2007年(48)

2006年(20)

我的朋友

分类:

2008-04-28 15:52:22

#!/usr/bin/perl -w
#ls -l  day_mzlog_200804_*_02.* |awk '{print $5}'|awk 'BEGIN{i=0};{i+=$1};END{print i/151}'
 
  my $passwd=shift @ARGV;
  chomp($passwd);
 
  my $score=13;   #存放密码的强度,初始为13
  my  $passwd_bak;
  open FILE," 
  #########foreach循环,头5类情况,看是否为实际单词
 
  foreach()  
  {
   chomp ($_);
   # I:  看密码本身是否是一个单词
   if ( /^$passwd$/i){
         print  "$_ ! the password $passwd is a real word!\n";
         $score-=1;
     }
   # II: 看去掉开头的单词是否是一个 
   my $sedond_passwd = substr $passwd ,1;  
    if ( /^$sedond_passwd$/i){
         print  "$_  the  minus the first word  $passwd is $sedond_passwd  a real word!\n";
         $score-=1;
     }
    
      # III: 看去掉结尾的单词是否是一个实际的单词
   my $third_passwd = substr $passwd ,0,length($passwd)-1;  
    if ( /^$third_passwd$/i){
         print  "$_  the  minus the last character  $passwd is $third_passwd--a real word!\n";
         $score-=1;
     }
  
       # IV: 看0替换为o是否单词是否是一个实际的单词
     $passwd_bak=$passwd;
     $passwd =~ tr/00/oO/;
     my $fourth_passwd =$passwd; 
     $passwd=$passwd_bak;
     if ( /^$fourth_passwd$/){
         print  "$_  switch the 0 to o   $passwd is $fourth_passwd--a real word!\n";
         $score-=1;
     } 
    
     # V: 看1替换为l是否单词是否是一个实际的单词
     $passwd_bak=$passwd;
     $passwd =~ tr/11/lL/;
     my $fifth_passwd =$passwd; 
     $passwd=$passwd_bak;
     if ( /^$fifth_passwd/){
         print  "$_  switch the 1 to l   $passwd is $fifth_passwd--a real word!\n";
         $score-=1;
     }
    
  }
  #########foreach循环结束
 
  ######密码10-20个字符
  my $passwd_lengh = length($passwd);
   if ( $passwd_lengh > 20 || $passwd_lengh < 10)
   {
      print " 密码应该为10-20个字符\n";
       $score-=1;
   }
  ######
 
  ########确保密码包括至少一个大写字母
  if ( $passwd =~ /([A-Z])/ ){}
  else
  {
   print "密码包括至少一个大写字母\n";
  $score-=1;
  }
  #########
 
    ########确保密码包括至少一个小写字母
  if ( $passwd =~ /([a-z])/ ){}
  else
  {
   print "密码包括至少一个小写字母\n";
  $score-=1;
  }
  #########
 
      ########确保密码包括至少一个符号 ????????????????????????????????????
  if ( $passwd =~ /(\w+)/ ){}
  else
  {
   print "密码包括至少一个符号\n";
  $score-=1;
  }
  #########
 
   ########密码并不包括四个连续(或更多)小写字母
  if ( $passwd =~ /[a-z]\{4,\}/ )
  {
    print "密码不能包括四个连续(或更多)小写字母\n";
    $score-=1;
  }
  if ( $passwd =~ /[A-Z]\{4,\}/ )
  {
    print "密码不能包括四个连续(或更多)大写字母\n";
    $score-=1;
  }
  ###########
 
  ########密码并不包括四个连续(或更多)大写字母
 
 
  ###########
 
  ########确保密码并不包括任何重复字符
  #这个没写出来。¥%89459304-230942=-3=103=120349548375……%—*—*%……%#¥
    
  ###########
  
 
 print "\n\n *****score is :$score\n";
 
  my $size=
   ($score<7)? "weak":
   ($score<11)? "middle":
                "high";
  print " \t\t The Result::::\n";             
print " the passwd $passwd is a $size passwd! \n"
阅读(1256) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~