asp.net 怎样用ASCII做验证码?并且要求有大小写字母和数字的

asp.net 怎样用ASCII做验证码?并且要求有大小写字母和数字的,第1张

楼上这个~~我就给你个思路吧,如果单纯只要验证码不要其他障碍物的话是比较容易的,那比如说现在我们需要4个位的随机验证码,首先定义一个字符串用来存储,还有一个随机数,然后要有一个循环吧,在循环体内的话每次都生成一个1到3的随机数,判断这个随机数,1的话就在65-90里生成一个字母,方法也是一样用刚刚那个随机数,只不过换了一个范围而已,2的话就在97-122里生成一个,3的话就在数字里挑一个,然后总共循环4次,这样懂了吧。代码是比较好写的,我就不写了。

直接输入就可以了,一般情况,验证码是不区分大小写的。不过有一些字母容易混淆,需要注意下。

1 如G和C,p和D。如果像走马观花一样看,那么肯定是看不出他们的区别很容易输错验证码的,中第四个字母是大写的P不是D。

2字母太小:如N和H,如果字母H和N被缩小(横向缩小,变扁了),那么他们就太像了。解决得办法:细心看,或者用电脑放大镜看,或者换一个验证码。

3图示第四个字母你看是什么,像不像字母O其实不是,他是字母C,认真看一下,第四个字母的右半边有断开,而O是没有断开的,所以是字母C。

4如图所示第三个字母是不是看不清,其实他是大写的字母N,不是H哟。

5图示第四个字母是不是8呀,不是的,你可以这样分析,这里的验证码都是字母不是阿拉伯数字,所以不是8,是什么呢?其实这个是小写的g。

6urhn,输入正确,你猜对了。

其实,如果真的看不清或者不确定,可以点击换一张。挑清晰的填就OK了。。

代码如下:
<php
function createRandomStr($length){
$str = array_merge(range('a','z'),range('A','Z'));
shuffle($str);
$str = implode('',array_slice($str,0,$length));
return $str;
}
echo createRandomStr(4);
>

equals方法区分两个字符串是否相等。可以写为
if (!("Fance"equals("fance"))) {
//返回登录页面
}
而equalsIgnoreCase方法确实也是可以将两个字符串进行比较的,但是他并不区分大小写。所以在这里使用equals方法判断。

public class GenerateRandomLetterAndNum {
public static void main(String[] args) {
Set<String> store = getletterandnum(6);
printSet(store);
}
public static Set<String> getletterandnum(int length) {
Set<String> set =new HashSet<String>();
for (int i = 0; i < length; i++) {
String value = getrandom();
setadd(value);
}
if (setsize()<length) { //如果没有生成6位
String value = getrandom();//继续调用生成随机数的方法
setadd(value);
}
return set;
}
private static String getrandom() { //生成随机字母和数字方法
String value = "";
Random random = new Random();
int gen = randomnextInt(2);//0、1、2
String charornum = gen % 2 == 0 "char" : "num";
if ("char"equals(charornum)) {
int temp = randomnextInt(2) % 2 == 0 65 : 97;
int ascii = randomnextInt(26);
value += (char) (ascii + temp);
} else if ("num"equalsIgnoreCase(charornum)) {
value += StringvalueOf(randomnextInt(10));
}
return value;
}
public static void printSet(Set set){ //打印set的方法
Iterator iterator = setiterator();
while (iteratorhasNext()) {
String ele = (String) iteratornext();
Systemoutprint(ele+" ");
}
}

$str='你要输入的密码';
$model='/[A-Z]+[a-z]+/'; //最少要包含一个或者多个大写或者小写,和0个或则多个任意字符;
$modelength='/{8,}/'; //输入的最少为8位
if(!preg_match($modelength,'aaa')){
echo '密码不能少于8位';
}
if(!preg_match($model,$str)){
echo '密码必须包含大小写';
}
也可以这样写
$str="Aaaa!";
$model='/[A-Z]+[a-z]+/'; //最少要包含一个或者多个大写或者小写,和0个或则多个任意字符;
$modelength='/{8,}/'; //输入的最少为8位
if(!preg_match($model,$str)||strlen($str)<8){
echo '密码需要包含大小写,或者密码长度小于8位';
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10550157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存