当前位置:实例文章 » C#开发实例» [文章]行为式验证码(成语点选)(C#版和Java版)

行为式验证码(成语点选)(C#版和Java版)

发布人:shili8 发布时间:2025-01-15 13:03 阅读次数:0

**行为式验证码(成语点选)**

行为式验证码是一种基于用户交互的验证码,通过要求用户完成特定的任务来验证其身份。这种验证码可以有效地防止机器人或其他自动化工具进行恶意操作。

在本文中,我们将实现一个简单的行为式验证码系统,使用成语点选作为验证方式。我们将分别使用C#和Java两种语言编写该系统。

**成语点选**

成语点选是一种典型的行为式验证码形式。用户需要从一组成语中选择正确的答案。例如:

* 成语:春风得意*选项:
* A. 春天很美丽 * B. 人生如梦 * C. 春风得意**C#版**

### 成语点选类

csharpusing System;
using System.Collections.Generic;

public class ChengYuPointSelect{
 private List<string> chengYus; // 成语列表 private Dictionary<string, string> options; //选项字典 public ChengYuPointSelect()
 {
 chengYus = new List<string>();
 options = new Dictionary<string, string>();
 }

 // 添加成语 public void AddChengYu(string chengYu)
 {
 chengYus.Add(chengYu);
 }

 // 添加选项 public void AddOption(string chengYu, string option)
 {
 if (chengYus.Contains(chengYu))
 {
 options[chengYu] = option;
 }
 else {
 Console.WriteLine("成语不存在!");
 }
 }

 // 验证用户答案 public bool VerifyAnswer(string userAnswer, string chengYu)
 {
 if (chengYus.Contains(chengYu) && options.ContainsKey(chengYu))
 {
 return options[chengYu] == userAnswer;
 }
 else {
 Console.WriteLine("成语或选项不存在!");
 return false;
 }
 }
}


### 主函数
csharpclass Program{
 static void Main()
 {
 ChengYuPointSelect chengYuPointSelect = new ChengYuPointSelect();

 // 添加成语 chengYuPointSelect.AddChengYu("春风得意");

 // 添加选项 chengYuPointSelect.AddOption("春风得意", "A. 春天很美丽");

 // 验证用户答案 string userAnswer = "A. 春天很美丽";
 string chengYu = "春风得意";

 if (chengYuPointSelect.VerifyAnswer(userAnswer, chengYu))
 {
 Console.WriteLine("验证成功!");
 }
 else {
 Console.WriteLine("验证失败!");
 }

 Console.ReadKey();
 }
}


**Java版**

### 成语点选类
javaimport java.util.ArrayList;
import java.util.HashMap;

public class ChengYuPointSelect {
 private ArrayList chengYus; // 成语列表 private HashMap options; //选项字典 public ChengYuPointSelect() {
 chengYus = new ArrayList<>();
 options = new HashMap<>();
 }

 // 添加成语 public void addChengYu(String chengYu) {
 chengYus.add(chengYu);
 }

 // 添加选项 public void addOption(String chengYu, String option) {
 if (chengYus.contains(chengYu)) {
 options.put(chengYu, option);
 } else {
 System.out.println("成语不存在!");
 }
 }

 // 验证用户答案 public boolean verifyAnswer(String userAnswer, String chengYu) {
 if (chengYus.contains(chengYu) && options.containsKey(chengYu)) {
 return options.get(chengYu).equals(userAnswer);
 } else {
 System.out.println("成语或选项不存在!");
 return false;
 }
 }
}


### 主函数
javapublic class Main {
 public static void main(String[] args) {
 ChengYuPointSelect chengYuPointSelect = new ChengYuPointSelect();

 // 添加成语 chengYuPointSelect.addChengYu("春风得意");

 // 添加选项 chengYuPointSelect.addOption("春风得意", "A. 春天很美丽");

 // 验证用户答案 String userAnswer = "A. 春天很美丽";
 String chengYu = "春风得意";

 if (chengYuPointSelect.verifyAnswer(userAnswer, chengYu)) {
 System.out.println("验证成功!");
 } else {
 System.out.println("验证失败!");
 }

 System.out.println();
 }
}


以上是C#和Java版的成语点选验证码系统。该系统使用成语点选作为验证方式,要求用户从一组成语中选择正确的答案。通过添加成语和选项,以及验证用户答案,可以有效地防止机器人或其他自动化工具进行恶意操作。

相关标签:c#java开发语言
其他信息

其他资源

Top