在很多产品中都有cdkey或者激活码需求,这就牵扯到cdkey的生成。cdkey(或激活码,后面已cdkey代替)一般都是由固定长度的一串数字和字母组成,生成的方法有很多,好比最简单的一种就是在26个字母和10个数字中随机抽取一个,然后重复N次,这样就生成了一个长度为N的cdkey。下面介绍一种简单实现的方法,直接上代码:
1 #!/bin/sh
2 CDKeyLen=10
3 CDNum=10
4 MYSQLCmd="mysql -h127.0.0.1 -P3306 -uroot -p123456 -Dmydb --default-character-set=utf8 -N -s -e"
5 i=0
6 while((i<$CDNum))
7 do
8 cdkey=`date +%s%N | md5sum | head -c ${CDKeyLen}`
9 cnt=$($MYSQLCmd "select count(*) from cdkey where key='$cdkey'")
10 if [[ $cnt == "0" ]]; then
11 i=$(($i+1))
12 cdkeyid=$($MYSQLCmd "insert into cdkey(key,time) valuse('$cdkey', unix_timestamp(now()));select last_insert_id();")
13 echo $cdkeyid
14 fi
15 done
其实cdkey的生成就是这句“cdkey&#