行为式验证码(成语点选)(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 ArrayListchengYus; // 成语列表 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版的成语点选验证码系统。该系统使用成语点选作为验证方式,要求用户从一组成语中选择正确的答案。通过添加成语和选项,以及验证用户答案,可以有效地防止机器人或其他自动化工具进行恶意操作。