当前位置:首页 > linux教程 > 列表

linux中shell生成随机密码示例

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-11 08:33:18 浏览: 评论:0 

shell命令可以生成随机密码我在很早以前就介绍过一些例子了,这里看到一站长写的文章再整理一下与大家一起学习他的方法.

为了生成更加无序及相应复杂的密码,因此写了个生成随机密码的脚本,在此之前生成密码通常我是通过如下命令实现的:

cat /dev/urandom | head -n 1 | md5sum | head -c 16

好了,不说所了,直接上脚本,代码如下:

  1. [root@liufofu shell]# cat make_random_passwd.sh  
  2. #!/bin/bash 
  3. ######################################### 
  4. # author        www.phpfensi.com 
  5. # email         phpfensi.com@qq.com 
  6. date          2014-08-15 
  7. ######### descprition ################## 
  8. # 1.生成随机密码 
  9. # 2. 
  10. ######################################## 
  11. #init variables 
  12. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
  13. export PATH 
  14.  
  15. ff_outputdir=/tmp/liufofu 
  16. curdate=$(date +%Y%m%d) 
  17. curtime=$(date +%H%M%S) 
  18. ff_logfile=${ff_outputdir}/${curdate}.log 
  19.  
  20. if [ ! -e ${ff_outputdir} ];then 
  21.     mkdir -p ${ff_outputdir} 
  22. fi 
  23.  
  24. #处理过程中产生的日志由日志函数来进行处理记录 
  25. [root@liufofu shell]# cat make_random_passwd.sh  
  26. #!/bin/bash 
  27. ######################################### 
  28. # author        www.phpfensi.com 
  29. # email         phpfensi@qq.com 
  30. date          2014-08-15 
  31. ######### descprition ################## 
  32. # 1.生成随机密码 
  33. # 2. 
  34. ######################################## 
  35. #init variables 
  36. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
  37. export PATH 
  38.  
  39. ff_outputdir=/tmp/liufofu 
  40. curdate=$(date +%Y%m%d) 
  41. curtime=$(date +%H%M%S) 
  42. ff_logfile=${ff_outputdir}/${curdate}.log 
  43.  
  44. if [ ! -e ${ff_outputdir} ];then 
  45.     mkdir -p ${ff_outputdir} 
  46. fi 
  47.  
  48. #处理过程中产生的日志由日志函数来进行处理记录 
  49. function log() 
  50.     echo "`date +"%Y:%m:%d %H-%M-%S"` $1 "  >> ${ff_logfile} 
  51. rpasswd="" 
  52. if [ -z $1 ];then 
  53.     rlen=16 
  54. else 
  55.     rlen=$1 
  56. fi 
  57. ary=(0 1 2 3 4 5 6 7 8 9 \( a b c d e f g h i i \) j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z @ % \# \!) 
  58. for ((i=1;i<=${rlen};i++));do 
  59.     rpasswd=${rpasswd}${ary[$RANDOM % ${#ary[*]}]} 
  60.     #echo -n ${ary[$RANDOM % ${#ary[*]}]} 
  61. done 
  62. echo ${rpasswd} 

在这个脚本中,你可以自行定义ary这个数组,生成你自己所要的密码类型.

脚本的运行效果如下:

  1. [root@liufofu shell]# sh make_random_passwd.sh 
  2. z%J7Jy7EE@YrWi8E 
  3. [root@liufofu shell]# sh make_random_passwd.sh 10 
  4. lW6IiCcJyi 
  5. [root@liufofu shell]# sh make_random_passwd.sh 6 
  6. ZiEIqj 
  7. [root@liufofu shell]# sh make_random_passwd.sh 1 
  8. [root@liufofu shell]# sh make_random_passwd.sh 7 
  9. Jyw28dB 
  10. [root@liufofu shell]# sh make_random_passwd.sh 
  11. 39eZkiTrp1e1kDb% 
  12. [root@liufofu shell]# sh make_random_passwd.sh 
  13. #Aw%Jn@PPcO9bH)r

Tags: linux随机密码 shell随机密码

分享到: